如何在node.js中启动一个认为从命令行运行的进程

时间:2013-09-17 20:47:16

标签: node.js console exec system-calls child-process

我在node.js脚本中运行require('child_process').exec('npm install')作为子进程,但我希望它保留控制台颜色。我在Windows中运行,但希望这个脚本是可移植的(例如linux)。如何启动一个认为它是从控制台运行的进程?

注意:我宁愿没有特定于npm的答案,但答案允许我欺骗任何命令。

1 个答案:

答案 0 :(得分:3)

您可以通过让子进程继承主进程“stdio流来实现此目的。这意味着您需要使用spawn而不是exec,这就是您要做的事情:

var spawn = require('child_process').spawn;
var child = spawn('npm', ['install'], {
  stdio: 'inherit'
});