小编典典

如何在 node.js 上调试“错误:生成 ENOENT”?

all

当我收到以下错误时:

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)

我可以按照什么程序来修复它?

作者注 :这个错误的很多问题鼓励我发布这个问题以供将来参考。


阅读 116

收藏
2022-03-17

共1个答案

小编典典

已知的常见原因

  1. 环境问题

    • 系统中不存在命令可执行文件(未安装依赖项)。
    • 命令可执行文件不存在于PATH环境变量指定的目录中。
    • 可执行二进制文件是使用不兼容的库编译的。
    • 仅限 Windows 的错误/怪癖

    • ‘.cmd’ 扩展名/外壳:是的。

    • 管理员权限。
    • 错误spawn('command', ['--argument', 'list'], { cwd, env, ...opts })用法

    • 指定的工作目录(opts.cwd)不存在·

    • 命令中的参数列表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 怪癖)


2022-03-17