nodemon是唯一靠谱的本地开发守护方案,需全局安装并正确配置--watch和--ignore参数,避免与vscode调试端口冲突,且必须保存文件才能触发热重载。

为什么直接 node app.js 不适合开发
改一行代码就得手动 Ctrl+C 再 node app.js,不仅效率低,还容易漏掉重启导致逻辑不生效。Node 进程本身不监听文件变化,node 命令只是单次执行,没有守护、无热重载、无错误自动恢复——这不是开发,是手动运维。
nodemon 是唯一靠谱的本地守护方案
VSCode 里没有“内置进程守护”,所有稳定可靠的热更新都依赖 nodemon。它不是插件,是命令行工具,必须通过 npm 安装并正确配置参数,否则改了文件也不重启。
- 全局安装(推荐):
npm install -g nodemon;项目级安装也行,但要确保package.json的脚本能调到它 - 入口文件不能硬编码在
package.json里,比如"dev": "nodemon server.js"—— 一旦你把入口改成src/index.js或bin/www,这个脚本就失效了 - 必须显式指定
--watch:默认只监听当前目录下的.js文件,src/外的配置文件、.json、.cjs都不会触发重启 - Windows 下
--ignore路径要用正斜杠:--ignore "dist/**/*",写成反斜杠"dist\**\*"会被nodemon忽略规则解析失败
和 VSCode 调试器共存会端口冲突
点绿色「运行」按钮启动调试,同时又在终端执行 npm run dev,两个进程都会尝试绑定 3000 或 8000 端口,必然报错 Error: listen EADDRINUSE。
-
launch.json里设了"program": "./server.js",就别让nodemon同时监听这个文件——这是最常见端口占用来源 - 真要断点调试,停掉
nodemon,纯用 VSCode 启动;热更新期间断点基本无效,不是 bug,是nodemon会杀掉旧进程、拉起新实例,VSCode 调试器无法无缝衔接 - 想边看日志边查状态?用
console.log或debugger+ 浏览器 DevTools,比依赖 VSCode 断点更稳
配置落地前最容易被忽略的一件事
nodemon 只响应磁盘文件变化,不是编辑器内存状态。改完 package.json 的 dev 脚本、或改完 server.js 逻辑,没按 Ctrl+S 保存——它根本不知道你改了什么。
尤其在启用了 VSCode “延迟保存” 或禁用自动保存时,这个坑几乎必踩。确认修改已落盘,才是热更新生效的前提。











