nodemon热重载失效主因是配置错误:默认仅监听.js/.mjs/.cjs/.json,需用--ext显式添加.ts/.yml等扩展名,--watch应指定src等安全路径避免误触发,且文件必须真正保存到磁盘。

Node.js 后端热重载不靠 VSCode 插件,靠 nodemon;配错 --watch 路径或漏掉 --ext 扩展名,改了文件也不会重启。
为什么 nodemon 启动后改代码没反应
默认只监听当前目录下的 .js、.mjs、.cjs 和 .json 文件。如果你项目里改的是 .ts、.env、.yml 或 .cjs,但没在命令里显式加 --ext,nodemon 就当没看见。
-
--watch src比--watch .更安全:避免监听node_modules或dist目录,防止日志轮转、构建产物变动触发误重启 -
--ext js,json,ts,cjs,mjs,yml要覆盖你实际会编辑的全部扩展名;TypeScript 项目必须加ts - Windows 下路径统一用正斜杠,比如
--ignore "dist/**/*";写成反斜杠"dist\**\*"会被 nodemon 忽略解析规则 - 确保文件真正落盘:VSCode 自动保存关了?改完
package.json或入口文件后没按Ctrl+S?nodemon 只响应磁盘变化,不是编辑器内存状态
package.json 的 dev 脚本怎么写才不踩坑
硬编码入口文件(如 "dev": "nodemon app.js")是常见翻车点。一旦你把启动逻辑从 app.js 搬到 bin/www 或 src/index.ts,这个脚本就失效了,但没人记得同步改。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 推荐写法:
"dev": "nodemon --watch src --ext js,json,ts --ignore 'src/**/*.test.js' --exec ts-node src/index.ts" - 如果用
ts-node,别同时跑tsc --watch:两个进程争抢outDir,可能造成文件锁或输出不一致 - 入口文件路径用相对路径(如
src/index.ts),别用./src/index.ts—— 某些 shell 环境下./会触发权限或路径解析问题 - 数据库连接、Redis 初始化等逻辑别放在模块顶层;热重启时会重复执行,容易建连泄漏
VSCode 调试器和 nodemon 能不能一起开
不能共存。点绿色「运行」按钮启动调试,再手动开终端跑 npm run dev,等于两个进程监听同一端口,必然报 Error: listen EADDRINUSE。
- 真要断点调试,停掉
nodemon,用launch.json的"request": "launch"模式启动;热更新期间断点大概率失效,这不是 bug,是设计使然 - 想边改边看状态,优先用
console.log或debugger+ 浏览器开发者工具,比 VSCode 断点更可靠 - 如果非要热更新+调试,用
"request": "attach"模式:先终端运行npm run debug(含--inspect-brk),再在 VSCode 里 attach 到port: 9229,并设"restart": true -
launch.json里别同时设"program"指向server.js又让nodemon监听它——这是最典型的端口占用来源
真正容易被忽略的,是每次改完配置后没保存文件,或者编辑器自动保存被关掉了;nodemon 不管你写了什么,只认磁盘上那一份。

















