我使用子进程 exec ,我需要切换到子进程spawn
这对我有用。
var child = child_process.exec("npm install express --save" options, function (error, stdout, stderr) {
.....
});
当我切换到产生它不起作用我得到错误
var child = child_process.spawn("npm install express --save" options);
Error: spawn npm ENOENT
at exports._errnoException (util.js:746:11)
at Process.ChildProcess._handle.onexit (child_process.js:1053:32)
at child_process.js:1144:20
我甚至尝试过
var child = child_process.spawn("npm", ["install express --save"], options)
;
它对我不起作用,可能是什么问题?
答案 0 :(得分:0)
我猜你是在Windows环境中。
所以,你必须输入终端,然后使用你想要的命令。
我们在Node.js中看到docs child_process.exec()方法默认情况下根据操作系统在其选项中有此规范。
shell String用于执行命令的Shell(默认值:' / bin / sh' on UNIX,' cmd.exe'在Windows上,shell应该理解-c开关 在UNIX上或Windows上的/ s / c。在Windows上,命令行解析应该 与cmd.exe兼容。)
因此,当使用spawn时,情况正在发生变化。
var child = child_process.spawn("cmd",["/c","npm install express --save"], options);
上面的代码块,启动Windows命令解释器(cmd)
的新实例并执行string指定的命令然后终止(/c)
,最后我们的特定命令npm install express --save
适用于Windows命令解释器。windows cmd commands references