540 Stimmen

Wie debugge ich "Fehler: spawn ENOENT" in node.js?

1voto

Dalton Punkte 465

Stellen Sie sicher, dass das auszuführende Modul installiert ist oder geben Sie den vollständigen Pfad zum Befehl an, wenn es sich nicht um ein Node-Modul handelt.

0voto

MTGradwell Punkte 141

Als ich versuchte, ein Node.js-Programm innerhalb des VS Code-Editors auf einem Debian-Linux-System zu debuggen, erhielt ich diesen Fehler. Mir fiel auf, dass dasselbe auf Windows problemlos funktionierte. Die hier zuvor gegebenen Lösungen waren nicht besonders hilfreich, da ich keine "spawn"-Befehle geschrieben hatte. Der fehlerhafte Code wurde anscheinend von Microsoft geschrieben und im VS Code-Programm versteckt.

Dann bemerkte ich, dass Node.js auf Windows als node bezeichnet wird, auf Debian (und wahrscheinlich auf Debian-basierten Systemen wie Ubuntu) jedoch nodejs. Also habe ich ein Alias erstellt - aus einem Root-Terminal habe ich Folgendes ausgeführt:

ln -s /usr/bin/nodejs /usr/local/bin/node

und das hat das Problem gelöst. Derselbe oder ein ähnlicher Vorgang wird wahrscheinlich in anderen Fällen funktionieren, in denen Ihr Node.js als nodejs bezeichnet wird, Sie jedoch ein Programm ausführen, das erwartet, dass es node heißt oder umgekehrt.

0voto

Joel B Punkte 10265

Wenn Sie Windows verwenden, führt Node.js einige lustige Dinge mit Anführungszeichen durch, die dazu führen können, dass Sie einen Befehl ausgeben, von dem Sie wissen, dass er in der Konsole funktioniert, aber nicht in Node. Zum Beispiel sollte das folgende funktionieren:

spawn('ping', ['"8.8.8.8"'], {});

aber es schlägt fehl. Es gibt eine fantastisch undokumentierte Option windowsVerbatimArguments zum Umgang mit Anführungszeichen/Ähnlichem, die anscheinend den Trick macht. Fügen Sie einfach Folgendes zu Ihrem opts-Objekt hinzu:

const opts = {
    windowsVerbatimArguments: true
};

und Ihr Befehl sollte wieder funktionieren.

spawn('ping', ['"8.8.8.8"'], { windowsVerbatimArguments: true });

0voto

Sunil Jakhar Punkte 155

Alles versucht, nichts hat funktioniert, mein System hat ein anderes Problem.

Die Lösung, die für mich funktioniert hat, ist Befehl ausführen: npm config set script-shell "C:\Program Files\git\bin\bash.exe"

0voto

Kürzlich habe ich auch ein ähnliches Problem gehabt.

Starte den Entwicklungsserver...

events.js:174
      throw er; // Unhandled 'error' event
      ^

Fehler: spawn null ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
    at onErrorNT (internal/child_process.js:415:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)
'error' Ereignis ausgelöst bei:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:246:12)
    at onErrorNT (internal/child_process.js:415:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)
Fehler Befehl fehlgeschlagen mit Exitcode 1.

Es lag an einer falschen Konfiguration in der .env-Datei für BROWSER. Ich hatte BROWSER=null, aber es sollte BROWSER=none sein. Durch die Änderung dieser Konfiguration konnte ich mein Problem lösen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X