You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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默认监听逻辑存在兼容问题,按如下配置调整即可:

  1. 在项目根目录(和package.json同级)新建nodemon.json配置文件
  2. 写入以下配置:
{
  "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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 06:54:08