vs code 保存即中断运行实为开发服务器(如 nodemon)监听文件变化触发的自动重启,并非 vs code 自身行为;可通过检查终端启动命令、调整工具延迟或忽略规则、修改 autosave 设置等方式解决。

VS Code 保存即中断运行,本质是热重载/自动重启机制在起作用
这不是 VS Code 自身行为,而是你正在运行的开发服务器(比如 nodemon、ts-node-dev、webpack-dev-server 或某些框架 CLI)监听了文件变化,一检测到保存就主动终止旧进程、拉起新进程。VS Code 只是触发了保存这个事件。
怎么确认是不是 nodemon 在捣鬼
看终端里运行命令是否包含 nodemon —— 它默认监听 .js、.ts 等源码文件,保存即重启。
- 检查终端启动命令:如果看到类似
nodemon index.js或nodemon --watch src server.js,就是它 -
nodemon的配置文件(nodemon.json)里若写了"ext": "js,json,ts",也会响应保存 - 临时验证:改用
node index.js直接运行,再保存——进程不再中断,说明问题出在工具链
想保存不中断,但又保留自动重启能力?关掉监听或调大延迟
多数工具支持「忽略保存」或「防抖重启」,不是只能二选一。
-
nodemon加--delay 2:保存后等 2 秒再重启,避免频繁保存导致反复中断 -
nodemon加--ignore "src/**/*.test.js":排除测试文件,但对主逻辑文件仍生效 -
ts-node-dev用--no-notify不够,得加--poll+ 增大--interval(如--interval 3000)来降低轮询敏感度 - 如果是
webpack-dev-server,检查devServer.watchFiles是否误配了太宽泛的路径
VS Code 设置本身不会导致中断,但有个隐藏开关要留意
极少数情况:你启用了 files.autoSave 为 "onFocusChange" 或 "onWindowChange",配合某些插件(如保存时自动格式化 + 触发 lint-staged)可能间接引发进程重启。但这属于连锁反应,不是 VS Code 主动杀进程。
- 检查设置:搜索
files.autoSave,设为"off"或"afterDelay"可减少意外触发 - 禁用可疑插件(如
Auto Run Command、Run on Save),逐个排查是否它们在保存后执行了kill或npm run dev - 终端里运行的进程,真正决定「是否中断」的是它的信号处理逻辑——比如没捕获
SIGUSR2就直接退出,那任何重启指令都会表现为“中断”
真正难调的点往往不在 VS Code,而在你没意识到的那个 package.json 里的 scripts 命令,或者某行被注释掉的 nodemonConfig 字段。先盯住终端第一行启动命令,比翻设置快得多。










