proxy

by Wietse De Vries

JavaScript

#!/usr/bin/env node

const _ = require('lodash');
const { spawn } = require('child_process');
const nodemon = require('nodemon');

const [envArgs, args] = _.partition(process.argv.slice(2), arg => arg.startsWith('--env.'));

// needed for react-hot-reloading (see .babelrc.js)
process.env.NODE_ENV = 'development';

require('../webpack/webpack.devserver.js');

if (args.includes('--nodemon')) {
  nodemon(`src/server ${envArgs.join(' ')}`);
} else {
  require('../src/server');
}

const server = spawn(
  'webpack',
  ['--watch', '--config ./webpack/webpack.build.server.js', '--progress', '--mode=development'].concat(envArgs),
  {
    shell: true,
    stdio: 'inherit'
  }
);

process.on('exit', () => {
  server.kill();
});

process.on('SIGINT', () => {
  process.exit();
});