Nodemon提示因变更重启时卡住 无法完成代码保存后自动重启
Nodemon卡在重启步骤修复方案
最高优先级排查:僵尸进程阻塞
90%以上该场景问题是旧Node进程未被正常终止,导致Nodemon等待旧进程退出超时卡住:
- 关闭所有VS Code终端,打开任务管理器,结束全部名为
node.exe的进程 - 回到项目目录重新执行
npm start测试 - 若反复出现该问题,直接修改
package.json中的启动脚本,强制Nodemon发送终止信号强杀旧进程:
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "nodemon app.js --signal SIGKILL" }
第二优先级:修复文件监听兼容问题
Windows环境下VS Code的文件写入机制和Nodemon默认监听逻辑存在兼容问题,按如下配置调整即可:
- 在项目根目录(和
package.json同级)新建nodemon.json配置文件 - 写入以下配置:
{ "watch": ["*.js"], "ignore": ["node_modules", ".git"], "delay": 500, "legacyWatch": true }
配置作用:
delay: 500:等待文件完全写入磁盘后再触发重启,避免编辑器保存时多次触发变更事件导致冲突legacyWatch: true:启用轮询模式替代系统原生文件监听,彻底解决Windows环境下文件监听失效、触发异常的问题- 明确监听/忽略范围,减少无效监听的性能开销
第三优先级:排查代码逻辑问题
如果上述配置修改后仍有问题,先写最小Demo验证环境是否正常:
// test.js const express = require('express') const app = express() app.listen(3000, () => console.log('服务运行在3000端口'))
将启动脚本临时改为nodemon test.js,修改文件保存看是否能正常重启:
- 若可以正常重启,说明原
app.js存在未释放的资源:比如未清理的定时器、未关闭的数据库连接、未处理的长连接,导致进程收到终止信号后无法正常退出,逐一排查对应逻辑即可 - 若仍无法重启,右键以管理员身份运行VS Code再测试,部分系统权限限制会导致Nodemon没有权限终止旧进程。
内容的提问来源于stack exchange,提问作者devon
相关产品推荐
相关产品推荐

