generator-react-webpack-base
Version:
A base template for a fullstack react webpack application
47 lines (42 loc) • 1.08 kB
JavaScript
/*
* From React Starter Kit (http://www.reactstarterkit.com/)
*/
var path = require('path');
var cp = require('child_process');
var watch = '
import cp from 'child_process';
import watch from './lib/watch';
/**
* Launches Node.js/Express web server in a separate (forked) process.
*/
function start() {
const server = cp.spawn(
'node',
[path.join(__dirname, '../build/server.js')],
{
env: Object.assign({ NODE_ENV: 'development' }, process.env),
silent: false,
}
);
server.stdout.on('data', data => {
let time = new Date().toTimeString();
time = time.replace(/.*(\d{2}:\d{2}:\d{2}).*/, '$1');
process.stdout.write(`[${time}] `);
process.stdout.write(data);
if (data.toString('utf8').includes('The server is running at')) {
resolve();
}
});
server.stderr.on('data', data => process.stderr.write(data));
process.on('exit', () => server.kill('SIGTERM'));
return server;
}
let server = start();
if (global.WATCH) {
watch('build/server.js').then(watcher => {
watcher.on('changed', () => {
server.kill('SIGTERM');
server = start();
});
});
}