[英]Node.js spawn/exec/execFile/win-spawn/cross-spawn all throwing Error: spawn ENOENT
对于上下文,routes \\ index.js:87在我的exec周围(同步)或在我的exec内(异步)。
我通过使用child_process,win-spawn或cross-spawn库在spawn,exec或execFile中遇到此错误。
我试过运行node,npm,grunt,ant(Apache)等-都可以在命令行中正常运行-带有和不带有参数,带有和不带有选项,sync和async,我总是能得到这个确切错误(同一行和同一列)。
昨天我整天都在寻找解决方案,在这里和Github(节点)上找到解决方案,尝试了所有发现的问题,但没有任何解决方案。
我将提供您认为有助于解决该问题的任何信息。 谢谢你的支持。
-
Ben Fortune的请求 (尝试了所有同步和异步,仅显示第一个示例):
var exec = require('child_process').exec;
exec('node', function(err){
if(err) throw err;
});
-
var exec = require('child_process').exec;
var child = exec('node');
child.on('error', function(){ throw arguments['0']; });
-
var exec = require('child_process').execFile;
exec('/path/to/node', function(err){
if(err) throw err;
}
-
var spawn = require('child_process').spawn
spawn('node', function(err){
if(err) throw err;
}
-
var spawn = require('child_process').spawn
spawn('cmd', ['/s', '/c', '"C:\\mycmd.bat"'], {
windowsVerbatimArguments: true
});
我已经使用win-spawn和cross-spawn软件包尝试了所有这些方法,并在需要时添加和不添加“ .exec”(等)。 我已经尝试过像stdio: 'inherit'
这样的选项。
我正在使用Windows 8.1 64位系统,以管理员身份运行命令。
-
http://www.zescience.com/node-js-error-spawn-enoent-windows-8-1-167370
几个具有相同错误的示例,除了我的情况,我调用的是exec函数,而不是第3方程序包。
我还尝试将exec放在代码中的其他位置,调用的位置不是问题。
在win-spawn和cross-spawn失败的地方, spawn-cmd起作用了。
我不知道为什么当spawn-cmd起作用时,cross-spawn无法正常工作,因为它们非常相似,但是您就可以了。 至于最初的问题,我想这是节点的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.