You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么npm start启动失败?node app.js运行正常但用nodemon报错

Nodemon启动报9009错误的排查方案

核心判断:你的业务代码完全不存在问题——node app.js能正常启动服务,说明Express依赖、接口逻辑、Node.js运行环境全部正常。报错对应的errno 9009是Windows平台的典型错误码,本质是执行脚本的进程找不到nodemon对应的可执行文件。

分步排查修复

  • 验证本地依赖的可执行文件是否正常
    在项目根目录的终端直接执行node_modules/.bin/nodemon app.js,如果这条命令能正常拉起服务,说明本地安装的nodemon是完整的,问题出在脚本执行时的路径匹配环节。
    可以直接修改package.json里的start脚本,写全本地可执行的相对路径,示例:
    "scripts": {
      "start": "node_modules/.bin/nodemon app.js"
    }
    
  • 刷新终端的环境变量
    npm执行自定义脚本时,会自动把项目下的node_modules/.bin目录加入终端的临时PATH环境。但如果在安装依赖之后不重启终端、甚至不重启VSCode,旧的环境变量不会加载最新的路径,自然找不到nodemon。
    遇到这种情况,直接关掉所有打开的终端窗口和编辑器,重新打开项目的终端再执行npm start即可解决。
  • 排查安装过程的文件丢失问题
    打开项目下的node_modules/.bin文件夹,查看是否存在nodemon.cmd、nodemon这类可执行文件。如果目录里没有对应文件,大概率是安装过程被杀毒软件拦截、误删了可执行程序。关掉杀毒软件后,重新执行npm install --save-dev nodemon重装依赖即可。
  • 临时启动方案
    可以在项目终端直接执行npx nodemon app.js拉起服务,npx会自动定位本地的nodemon可执行文件,不需要依赖npm脚本的PATH匹配逻辑,能快速验证项目是否可以正常运行。

常见踩坑说明

很多开发者反复删除node_modules、清npm缓存重装依赖,依然解决不了这个问题,本质是重装完成后没有重启终端,旧的环境变量没有刷新,进程始终在旧的PATH路径里查找nodemon,哪怕依赖安装再完整,也会触发找不到文件的9009错误。


内容的提问来源于stack exchange,提问作者Mariana Soto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.01 08:15:04