簡體   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