必须同时禁用extensions.autocheckupdates和extensions.autoupdate,并配置插件专属开关(如gitlens.advanced.messages=[])、清除残留通知、检查工作区覆盖设置,否则仍会弹窗或崩溃。

关掉 VSCode 插件自动更新,光设 extensions.autoUpdate 为 false 不够——右下角照样弹 GitLens 的「New release」、ESLint 的「Update available」,甚至触发 Extension host terminated unexpectedly 错误。真正生效必须同时切断后台轮询、静默安装、插件自检弹窗三层行为。
为什么关了 autoUpdate 还在弹窗?
因为 extensions.autoUpdate 只控制“检测到新版本后是否自动下载并覆盖安装”,不阻止插件自己发起 HTTP 请求查 GitHub Release 或调用 vscode.window.showInformationMessage() 弹 toast。这类行为绕过 VSCode 通用通知系统,必须单独压制:
-
GitLens的弹窗由gitlens.advanced.messages控制,设为[]才禁用 -
Live Server默认每 24 小时检查一次,靠liveServer.settings.donotVerifyVersion关闭 -
ESLint插件若配置错误(如eslint.packageManager指向不存在的 npm),会反复崩溃重载,连带触发“Extension host terminated”弹窗,看起来像更新提醒
必须同时关闭 autoCheckUpdates 和 autoUpdate
这两个开关独立生效,缺一不可:
-
extensions.autoCheckUpdates: false停掉每小时一次的后台 HTTP 轮询,避免无意义请求和残留通知 -
extensions.autoUpdate: false阻止检测到更新后自动下载+解压覆盖 - 只设前者为
false,插件仍可能突然升级导致兼容问题;只设后者为false,右下角持续显示「New version of XXX is available」
务必直接编辑 settings.json,GUI 设置有时不同步,尤其用了 Settings Sync 或团队共享配置时。
清空右下角卡住的通知气泡
即使开关全关,之前积压的「Extension updated」或「Version 12.4.0 is available」仍会钉在右下角,点 × 无效:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并执行Notifications: Clear All Notifications - 若命令搜不到,说明 VSCode 版本较老,在开发者工具 Console 标签页粘贴执行
notifications.clearAll() - 清完立刻检查右下角是否空了;没空,说明某个插件(如 Volar)启动时又注册了新通知
工作区配置可能悄悄覆盖你的设置
VSCode 配置优先级是:Workspace > Remote > User > Default。最容易被忽略的是:
- 项目根目录存在
.vscode/settings.json,且里面写了"extensions.autoUpdate": true—— 它会直接覆盖用户级设置 - 用了
Remote-SSH或Dev Container,左下角显示「Remote — SSH」,就得点它 →「Open Remote Settings」单独配一遍 - 每次手动升级 VSCode 后,
product.json文件会被重写,之前加的禁用字段丢失,必须重新设为只读
真正稳定的关闭不是“点一下就完事”,而是配置、清理、权限三者同步到位,否则某天保存代码时插件突然升级,Extension host terminated 就来了。











