以下是未触发子进程error
的示例:
const spawn = require('child_process').spawn;
const childProcess = spawn('tar', ['--wrong-option'], { stdio: 'inherit' });
childProcess.on('error', err => {
console.error('err: ', err);
});
为什么会这样?如何从生成的进程中捕获错误(特别是错误代码)?
答案 0 :(得分:4)
error
事件仅在产生孩子本身导致问题时生成;例如,当可执行文件不存在时。
捕捉错误"抛出"通过子进程,您应该监听exit
个事件并检查code
和signal
个参数:
childProcess.on('exit', (code, signal) => {
if (code) {
console.error('Child exited with code', code)
} else if (signal) {
console.error('Child was killed with signal', signal);
} else {
console.log('Child exited okay');
}
});
答案 1 :(得分:1)
另外,如果您想查看错误消息:
composer.json