1. ホーム
  2. node.js

[解決済み] node.jsで「Error: spawn ENOENT」をデバッグするにはどうすればよいですか?

2022-03-22 06:20:22

質問

以下のようなエラーが発生した場合。

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: spawn ENOENT
    at errnoException (child_process.js:1000:11)
    at Process.ChildProcess._handle.onexit (child_process.js:791:34)

どのような手順で直せばいいのでしょうか?

著者ノート : このエラーに関する多くの問題が発生したため、今後の参考のためにこの質問を投稿しました。

関連する質問

解決方法は?

エラーが発生するスポーンコールを調査する方法。

既知の、通常の原因

  1. 環境問題

    • コマンドの実行ファイルがシステム内に存在しない(依存関係がインストールされていない)。 見る promincの回答
    • で指定されたディレクトリ内にコマンドの実行ファイルが存在しない。 PATH 環境変数が設定されています。
    • 実行バイナリが互換性のないライブラリでコンパイルされています。 見る danilo-ramirez 回答
  2. Windows版のみのバグ・不具合

  3. spawn('command', ['--argument', 'list'], { cwd, env, ...opts }) 使用法

    • 指定された作業ディレクトリ( opts.cwd が存在しない 見る leeroy-brunの回答
    • コマンド内の引数リスト String spawn('command --wrong --argument list')
    • コマンド文字列内の環境変数 spawn('ENV_VAR=WRONG command')
    • 引数リスト Array として指定された String spawn('cmd', '--argument list')
    • 未設定 PATH エンベロープ変数 spawn('cmd', [], { env: { variable } } => spawn('cmd', [], { env: { ...process.env, variable } }

<ブロッククオート

の起源は2つあります。 ENOENT :

  1. あなたが書いているコード
  2. 依存するコード

オリジンが依存するコードである場合、その原因は通常 環境問題 (またはWindowsのクセ)