VSCode中直接运行nodemon失败的根本原因是nodemon未正确加入系统PATH或安装位置不当:需先确保CMD/PowerShell中nodemon -v可执行,再配置VSCode;全局安装须将npm全局bin路径加入系统PATH并重启VSCode,本地安装则只能通过npx或npm script调用;调试热重载需在launch.json中保留"type": "node",配置"runtimeExecutable"指向本地node_modules/.bin/nodemon及"runtimeArgs": ["--inspect-brk", "入口文件"]。

VSCode 里直接运行 nodemon 失败,不是插件没装对,而是它根本没进系统 PATH 或没装对位置 —— 先确保 nodemon -v 在 CMD/PowerShell 里能执行,再谈 VSCode 集成。
nodemon 装在哪?全局 vs 本地,差别很大
全局安装(npm install -g nodemon)会让 nodemon 命令在任意终端可用,但前提是 npm 全局 bin 目录已加入系统 PATH;如果跳过这步,VSCode 终端就找不到命令。
- Windows 用户:重装 Node.js 时勾选 “Add to PATH”,再执行
npm install -g nodemon;装完后必须重启 VSCode(不是只关终端) - 若手动改过 npm 全局路径(如
npm config set prefix "D:\npm-global"),要把该路径(如D:\npm-global)加进系统环境变量Path,否则nodemon永远 command not found - 本地安装(
npm install --save-dev nodemon)更安全,但只能通过npx nodemon或npm run dev调用;VSCode 终端里直接敲nodemon仍会报错
VSCode 终端能跑 nodemon,但调试不热重载?launch.json 配错了
VSCode 的 Node.js 调试器默认不支持 nodemon 自动重启,必须显式指定运行时和参数,否则 F5 启动的仍是原生 node 进程。
- 不要改
"type": "node"—— 改成其他值(比如"type": "pwa-node")会导致断点失效或无法启动 - 正确写法是保留
"type": "node",加上"runtimeExecutable"和"runtimeArgs":
{
"type": "node",
"request": "launch",
"name": "Launch with nodemon",
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/nodemon",
"runtimeArgs": ["--inspect-brk", "${workspaceFolder}/index.js"],
"console": "integratedTerminal",
"restart": true
}
-
runtimeExecutable必须指向本地node_modules/.bin/nodemon(Windows 下是.cmd文件,VSCode 会自动处理) -
--inspect-brk是关键:让 nodemon 启动时立刻挂起,等 VSCode 附加调试器,否则断点来不及命中
为什么改了 launch.json 还是不生效?三个隐藏检查点
常见现象是保存配置、按 F5,终端一闪而过,断点完全不触发 —— 往往卡在这些容易被忽略的环节。
- 项目没打开“文件夹”:VSCode 必须通过「文件 → 打开文件夹」加载整个项目(含
package.json或node_modules),只打开单个.js文件时${workspaceFolder}为空 -
index.js路径不对:如果主文件叫server.js,"program"字段不用管(它被runtimeArgs覆盖了),但runtimeArgs里的路径必须真实存在且可读 - TS/ESM 项目要额外处理:
type: "module"的项目,nodemon默认不识别import,得加--exec node --loader ts-node/esm(配合ts-node)或改用tsx
真正麻烦的从来不是装 nodemon,而是 VSCode 终端是否继承了你 shell 里所有生效的环境变量,以及 launch.json 里哪一行参数悄悄覆盖了你的预期。每次改完,记得关掉所有 VSCode 窗口再重开,别信“重启终端”就够了。


















