-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.js
47 lines (36 loc) · 949 Bytes
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const { spawn } = require("child_process");
const config = {
cwd: process.cwd(),
env: process.env,
stdio: "inherit"
};
let child = null;
process.stdin.resume();
if (process.env.NODE_ENV === "production") {
const options = ["-s", "build"];
if (process.env.PORT) {
options.push("-l");
options.push(process.env.PORT);
}
child = spawn("serve", options, config);
} else {
child = spawn("react-scripts", ["start"], config);
}
if (child) {
let handled = false;
child.on('exit', function (exitCode) {
child = null;
console.log('Goodbye');
process.exit(exitCode);
})
function exitHandler() {
if (child && !handled) {
handled = true;
console.log('\rkilling server...',);
child.kill();
}
}
process.on('SIGINT', exitHandler);
process.on('SIGTERM', exitHandler);
process.on('uncaughtException', exitHandler);
}