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

使用npm script运行nodemon失败,但手动执行正常的问题排查

问题分析与解决方案

核心原因

你的项目路径包含&符号(E:\Web Devlopment\Web Devlopment & Projects\...),Windows环境下npm处理带特殊字符的路径时会出错:&是命令分隔符,npm解析脚本时会错误截断路径,导致它误以为nodemon在E:\Web Devlopment\nodemon\bin\nodemon.js(路径被&截断),而不是项目本地的node_modules目录里。

手动运行命令正常是因为直接在shell中执行时,shell会正确解析带特殊字符的路径(默认会处理或你通过引号包裹),但npm的脚本执行逻辑对这类特殊字符的处理存在兼容性问题。

解决方案

1. 彻底解决:修改项目路径(推荐)

将包含&的目录名改为不含特殊字符的名称,比如把Web Devlopment & Projects改成Web Development and Projects,然后:

  • 切换到修改后的项目目录
  • 删除node_modules文件夹和package-lock.json文件
  • 重新执行npm install
  • 再运行npm run dev

2. 临时修复:修改scripts配置

如果暂时无法修改路径,可以尝试以下两种方式调整package.json的scripts:

  • 用引号包裹nodemon的路径:
    "scripts": {
      "dev": "\"node_modules/.bin/nodemon\" src/index.js",
      "start": "node src/index.js"
    }
    
  • 直接通过node调用nodemon的源码文件:
    "scripts": {
      "dev": "node node_modules/nodemon/bin/nodemon.js src/index.js",
      "start": "node src/index.js"
    }
    

3. 额外排查步骤

  • 确认全局是否安装了nodemon,如果有,尝试卸载全局版本(npm uninstall -g nodemon),只保留项目本地依赖,避免全局和本地版本冲突。
  • 检查npm缓存,执行npm cache clean --force后重新安装依赖。

内容的提问来源于stack exchange,提问作者Hemal Pandya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 02:13:11