繁体   English   中英

Node.js spawn / exec / execFile / win-spawn / cross-spawn全部抛出错误:spawn ENOENT

[英]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位系统,以管理员身份运行命令。

-

节点js-错误:产生ENOENT(Windows 8.1)

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

几个具有相同错误的示例,除了我的情况,我调用的是exec函数,而不是第3方程序包。

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

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

在win-spawn和cross-spawn失败的地方, spawn-cmd起作用了。

我不知道为什么当spawn-cmd起作用时,cross-spawn无法正常工作,因为它们非常相似,但是您就可以了。 至于最初的问题,我想这是节点的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM