就是如果我希望通过自己的程序去调用npm init这样的进程
这就需要把自己和子进程之间的输入输出做一下pipe
process.stdin.pipe(child.stdin);
child.stdout.pipe(process.stdout);
其他方面都没问题,但是我如何知道npm init退出了呢?
目前的情况是进行到 Is this ok? (yes), 我敲回车之后,没有任何的事件被检测到了
我自己写了个简单的例子,用同样的方法去操作
var prompt = require('prompt');
prompt.start();
prompt.get(['username', 'email'], function (err, result) {
console.log('Command-line input received:');
console.log(' username: ' + result.username);
console.log(' email: ' + result.email);
process.exit(0);
});
这里,如果不执行process.exit(0),就会像刚才一样无法探测到。
而有了这句的话,我就可以
child.stdout.on('end', function() {});
或者
child.on('exit',function(){});
来得知
从而在袭击的程序中调用process.exit()退出。
是不是有什么机制我不知道的?或者,node本身在没有process.exit(0)的时候如何知道在什么时候退出运行?