当前位置: 首页 > 面试题库 >

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

寿翰飞
2023-03-14
问题内容

当我得到以下错误:

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)

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

作者注意 :许多与此错误有关的问题鼓励我发布此问题以供将来参考。


问题答案:
  • 使用NODE_DEBUG = child_process,向@ karl-richter积分。 简单,快速,2019年10月
  • 用包装纸装饰child_process.spawn,@ @ jiaji-zhou。 简单,快捷,2015年1月
  • 漫长的过程,归功于@laconbass。 复杂,耗时,2014年12月

已知的常见原因

  1. 环境问题

    • 该命令可执行文件在系统中不存在(未安装依赖项)。 查看 prominc的答案
    • PATH环境变量指定的目录中,命令可执行文件不存在。
    • 仅Windows的错误/怪癖

    • ‘.cmd’扩展名/ shell:是。 _看到李正回答

    • 管理员权限。
    • 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怪癖)



 类似资料:
  • 作者注:很多关于这个错误的问题促使我把这个问题贴出来,以备将来参考。 相关问题: 对节点_ENV=production使用spawn函数 节点。jschild_进程。spawn Enoint错误-仅在supervisord下 产卵节点。js错误 https://stackoverflow.com/questions/27603713/nodejs-spawn-enoent-error-on-tra

  • 问题内容: 我正在使用Socket.io运行Express.js应用程序用于聊天Web应用程序,并且在24小时内大约5次随机收到以下错误。节点进程将被永久封装,并立即重新启动。 问题是重新启动Express会使我的用户离开他们的房间,而没人希望这样做。 Web服务器由HAProxy代理。仅使用websockets和flashsockets传输就没有套接字稳定性问题。我无法有意复制此内容。 这是No

  • 作者注:这个错误的许多问题鼓励我张贴这个问题,以供将来参考。 相关问题: 使用node_env=production的spawn函数 node.js child_process.spawn ENOENT error-仅在supervisord 生成ENOENT Node.js错误 https://stackoverflow.com/questions/27603713/nodejs-spawn-e

  • 我的环境变量 %ant_home%: C:\apache-ant-1.9.3-bin\apache-ant-1.9.3 %java_home%: C:\Program Files\java\jdk1.7.0_51 路径: C:\users\...\appdata\roaming\npm; C:\adt-bundle-windows-x86_64-20140702\adt-bundle-window

  • 问题内容: 我正在尝试调试使用以下方法创建的子Node.JS进程: 问题是,在IntelliJ / WebStorm中运行时,父进程和子进程都在同一端口上启动。 因此,它仅调试父进程。 有什么方法可以设置IntelliJ来调试子进程或强制其在其他端口上启动,以便我可以在远程调试中进行连接? 问题答案: 这是node.js中一个已知的错误,该错误最近已得到修复(尽管未反向移植到v0.10)。 有关更

  • 我在尝试向服务器提交构建时遇到了一些问题。每次我试图提交它,它都失败了。以下是该过程的输出: 请帮帮我!