mirror of
https://github.com/alex8088/electron-vite.git
synced 2026-09-04 15:22:44 +08:00
fix(dev): exit non-zero when Electron is killed by a signal
`ChildProcess`'s `close` event fires as `(code, signal)` and `code` is null when the child was terminated by a signal. `process.exit` ignores its second argument and coerces null to 0, so passing the listener directly reports every signal death as a successful exit. Handle the two arguments explicitly so a signal death exits non-zero.
This commit is contained in:
parent
31965d2972
commit
c1b36fa845
@ -159,7 +159,10 @@ export function startElectron(root: string | undefined): ChildProcess {
|
||||
const entry = process.env.ELECTRON_ENTRY || '.'
|
||||
|
||||
const ps = spawn(electronPath, [entry].concat(args), { stdio: 'inherit' })
|
||||
ps.on('close', process.exit)
|
||||
// `code` is null when the child was terminated by a signal, and `process.exit` ignores
|
||||
// its second argument, so passing the listener directly would report every crash as a
|
||||
// successful exit. Map a signal death to a non-zero status instead.
|
||||
ps.on('close', (code, signal) => process.exit(code ?? (signal ? 1 : 0)))
|
||||
|
||||
return ps
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user