必须同时关闭extensions.autoUpdate和extensions.autoCheckUpdates以切断后台轮询与静默安装,并清除积压通知;仅设前者为false无法阻止GitLens等插件自检弹窗,且需直接编辑settings.json确保生效,避免被工作区配置覆盖。

关掉 VSCode 插件自动更新不是“点一下就完事”,而是必须同时切断三类行为:后台轮询、静默安装、插件自检弹窗。只设 extensions.autoUpdate 为 false,右下角照样蹦 GitLens 的「New release」和 ESLint 的「Update available」。
关掉 extensions.autoUpdate 和 autoCheckUpdates 两个开关
这两个配置控制的是 VSCode 原生扩展更新链路,缺一不可:
-
extensions.autoUpdate: false停止自动下载并安装新版本(但不阻止检测) -
extensions.autoCheckUpdates: false才真正关闭每小时一次的后台 HTTP 轮询,避免触发后续通知 - 两者都得写进
settings.json,GUI 设置有时不同步,尤其用了 Settings Sync 或团队共享配置时 - 别信“已禁用”状态栏提示——它只反映当前 session 加载值,重启后可能被项目级
.vscode/settings.json覆盖
清掉右下角卡住的旧通知气泡
即使开关全关,之前积压的「Extension updated」或「Version 12.4.0 is available」仍会钉在右下角,点 × 无效:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并执行Notifications: Clear All Notifications - 如果命令搜不到,说明 VSCode 版本较老(Developer: Toggle Developer Tools → Console 标签页 → 粘贴
notifications.clearAll()回车 - 清完立刻检查右下角是否空了;没空,说明某个插件正在重注册通知(比如 Vue Language Features 启动时调用
vscode.window.showInformationMessage)
单独压制 GitLens、Volar、ESLint 等 Vue 生态插件的通知
Vue 开发者最常遇到的干扰来自这几个插件,它们绕过 VSCode 通用通知系统,自己发 toast:
Vue 3 组合式 API 与 最佳实践,涵盖代码组织、useXxx 模式、组合式函数设计、Store 集成、响应式优化及功能抽取。
立即学习“前端免费学习笔记(深入)”;
-
GitLens:设
gitlens.advanced.messages为[],或搜gitlens.telemetry.enabled关掉遥测(部分版本靠这个关通知) -
Volar(Vue Language Features):新版默认关通知,但旧版需加
"volar.ignoreProjectConfiguration": true并确保没启用volar.updateNotification(该字段不存在于最新版,仅 v1.10.x 有) -
ESLint:搜
eslint.enable确保开启后,再找eslint.packageManager和eslint.options—— 错误配置会导致插件反复崩溃重载,连带触发“Extension host terminated”弹窗,看起来像更新通知 - 所有这类设置必须写进用户级
settings.json,不能只在工作区里配,否则新开文件夹又弹
终极防护:锁死 settings.json 文件权限
VSCode 大版本升级(如 1.89 → 1.90)会重写 settings.json,悄悄把 "update.mode": "none" 改回 "default",连带重置扩展更新开关:
- Windows:右键
%APPDATA%\Code\User\settings.json→ 属性 → 勾选“只读” - macOS / Linux:终端执行
chmod 444 "$HOME/Library/Application Support/Code/User/settings.json"(macOS)或chmod 444 "$HOME/.config/Code/User/settings.json"(Linux) - 验证是否生效:手动改一行保存,应提示“无法保存,文件为只读”
- 注意:不要去改
product.json,那是安装包内置文件,每次升级都会被覆盖,且修改后可能触发签名校验失败
最容易被忽略的是项目根目录下的 .vscode/settings.json —— 它优先级高于用户设置,一个团队模板里写了 "extensions.autoUpdate": true,你本地所有努力都会失效。每次遇到弹窗,先 grep -r "autoUpdate" .vscode/ 确认有没有隐藏开关。

















