Node.js spawn / exec / execFile / win-spawn / cross-spawn all throw:spawn ENOENT

时间:2014-09-19 07:59:06

标签: javascript windows node.js

Error

对于上下文,routes \ index.js:87在我的exec(sync)或我的exec(async)中。

我在spawn,exec或execFile中使用库child_process,win-spawn或cross-spawn获得此错误。

我尝试过运行node,npm,grunt,ant(Apache)等 - 这些都可以在命令行中运行而没有任何问题 - 有和没有参数,有和没有选项,同步和异步,我总是得到这个确切的错误(同一行和列)。

昨天我整天都在寻找解决方案,在这里找到解决方案,在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和交叉生成,有和没有' .exec' (等)附加要求。我尝试了stdio: 'inherit'等选项。

我正在使用Windows 8.1 64位,以管理员身份运行命令。

-

Node js - Error: spawn ENOENT (Windows 8.1)

http://www.zescience.com/node-js-error-spawn-enoent-windows-8-1-167370

一些具有相同错误的示例,除了在我的情况下,我调用exec函数,而不是一些第三方软件包。

我也尝试将exec放在代码的其他地方,调用的位置不是问题。

可能相关:https://github.com/joyent/node/issues/2318

1 个答案:

答案 0 :(得分:0)

win-spawn和cross-spawn失败,spawn-cmd工作。

我不知道为什么在spawn-cmd的时候交叉生成不起作用,因为它们非常相似,但是你去了。至于原始问题,我猜这是节点的问题。