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

标签 javascript windows node.js

Error

对于上下文,routes\index.js:87 在我的 exec 周围(同步)或在我的 exec 内部(异步)。

我在使用库 child_process、win-spawn 或 cross-spawn 的 spawn、exec 或 execFile 中遇到此错误。

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

我昨天花了一整天的时间寻找解决方案,在这里和 Github( Node )上找到了解决方案,尝试了我找到的所有东西,但没有解决问题。

我会提供您认为有助于解决问题的任何信息。感谢您的支持。

-

由 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 位,以管理员身份运行命令。

-

Node js - Error: spawn 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成功了。

我不知道为什么 cross-spawn 不起作用而 spawn-cmd 起作用了,因为它们非常相似,但你去吧。至于原来的问题,我猜是 Node 的问题。

关于javascript - Node.js spawn/exec/execFile/win-spawn/cross-spawn 全部抛出错误 : spawn ENOENT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25929068/

相关文章:

c - 公共(public)3270服务器

javascript - 合并两个获取对象以发送响应以在 Node js 中与 mongodb 进行 react ?

windows - 如何在 Windows 10 上通过自定义 inf 文件安装 WinUSB 驱动程序?

javascript - Babel 似乎没有改变我的 React-Native 代码

javascript - 如何让 vscode 与全局命名空间一起工作?

javascript - Chart.js 从非 0 的另一个值填充折线图

windows - Mercurial:使用文本文件中定义的名称标记当前修订

node.js - 向 Express 模型添加方法

node.js - 从标准输入读取时无法使用 CTRL D 触发 'end' 事件

javascript - UIkit3 : to confirm user input in UIkit. modal.prompt 使用 UIkit.modal.confirm