0
我正在尝试使用nodejs进程spawn。但不知何故,我无法做到这一点。我使用节点v0.12.2。 “gulp do-something”得到执行,我确实通过stdout看到输出结果..但退出事件从未得到执行!NodeJS process.spawn - 退出事件没有触发
var task = spawn('gulp', [
'do-something'
], {
cwd: configs.workingDirectory
});
task.stdout.on('data', function(data){
console.log(data.toString());
});
task.stderr.on('data', function (data) {
console.log(data.toString());
});
task.on('exit', function (exitCode) {
console.log("process.exitCode", exitCode)
});
,当我尝试使用菌种与标准输入输出: 'IPC']
var task = spawn('gulp', [
'do-something'
], {
cwd: configs.workingDirectory,
stdio: ['ipc']
});
退出事件被炒鱿鱼,但在错误发生后:
gulp: ../deps/uv/src/unix/core.c:833: uv__io_stop: Assertion `loop->watchers[w->fd] == w' failed.
我试过其他的组合为STDIO。它会导致task.stdout和task.sterr为空或退出事件未被解雇。
'close'会散发出来吗? – mscdex
@mscdex不,它不。 – Johny
好的。我设法使用:stdio:[0,'pipe','pipe'] – Johny