node.js 后端热重载需用 nodemon,必须正确配置 --watch、--ext、入口文件及避免端口冲突;windows 路径用正斜杠,改完务必 ctrl+s 落盘,ts-node 项目禁用 tsc --watch。

热重载不是 VSCode 自带功能,Node.js 后端要实现保存即重启,必须用 nodemon,配错 --watch、--ext 或漏关调试器,就白装。
nodemon 必须显式监听 src 目录和真实扩展名
默认只监听当前目录下的 .js 文件,但你改的是 src/router/index.ts 或 config.json?它根本不知道。不指定 --watch 和 --ext,改了等于没改。
-
--watch src比--watch .安全:避开node_modules、dist等目录,防止日志写入或构建产物触发误重启 -
--ext js,json,cjs,mjs,ts要覆盖你实际编辑的后缀;如果用ts-node,ts必须加进去,否则改.ts文件不生效 - Windows 下路径统一用正斜杠:
--ignore "dist/**/*",别写成--ignore "dist\**\*",否则nodemon解析失败
package.json 的 dev 脚本别硬编码入口文件
常见错误是写死 "dev": "nodemon app.js",结果你把启动逻辑挪到 bin/www 了,nodemon 还在跑旧文件,热更新完全失效。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 脚本里显式写清入口:
"dev": "nodemon --watch src --ext js,json,ts --ignore 'src/**/*.test.ts' --exec ts-node src/server.ts" - 如果项目用
ts-node,别同时开tsc --watch:两个进程争抢dist/输出,容易报错或延迟生效 - 确保
server.ts顶层没有重复初始化逻辑(比如多次mongoose.connect()),热重启时会重新执行模块代码
VSCode 调试器和 nodemon 别共存同一端口
点绿色「运行」按钮启动调试,再手动跑 npm run dev,等于两个 Node 进程绑同一个端口,必然报 EADDRINUSE 错误。
- 真要断点调试:停掉
nodemon,用launch.json的"request": "launch"启动;热更期间断点大概率跳过,这不是 bug,是设计使然 - 想边热更边查状态:优先用
console.log或debugger+ 浏览器 DevTools,比 VSCode 断点更稳 - 如果非要调试热更流程,改用
"request": "attach"模式:先跑npm run debug(含--inspect-brk),再让 VSCode 连port: 9229,并设"restart": true
改完配置必须 Ctrl+S 真实落盘
nodemon 监听的是磁盘文件变化,不是编辑器内存状态。关掉自动保存、改完 package.json 没按 Ctrl+S、或者编辑器卡住没写入——它就永远不触发重启。
真正容易被忽略的不是参数怎么写,而是你确信“已经改好了”,其实文件根本没保存到磁盘。










