vscode无原生“一键更新所有扩展”按钮;可通过命令面板执行extensions: update all extensions命令静默批量更新,或用code --update-extensions终端命令;不推荐使用auto update extensions类插件,因其易失效且可能引发兼容性问题。

VSCode 里没有“一键更新所有扩展”的原生按钮
VSCode 界面右下角的 Update Extensions 提示,只代表「有扩展可更新」,点击后打开的是扩展视图,并不会自动执行批量更新。官方至今未提供「全选 → 更新」功能,这是用户高频抱怨但被刻意留白的设计选择。
用命令面板触发批量更新(最稳的内置方案)
VSCode 内置了 Extensions: Update All Extensions 命令,它不依赖第三方插件,兼容所有版本(1.70+ 验证可用),执行后会静默下载并安装所有可更新扩展,无需人工确认每项。
- 快捷键:按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Update All Extensions,回车执行 - 注意:该命令不会跳过已禁用的扩展——禁用状态的扩展仍会被更新(但不会启用)
- 失败时会在通知栏提示具体错误,常见如网络超时、权限不足(比如扩展安装在系统级路径且当前用户无写入权)
- 执行中可在状态栏看到进度动画,完成后需手动重载部分扩展(尤其是语言服务器类,如
Python、ESLint)才能生效
终端命令行强制刷新(适合 CI/自动化或界面卡死时)
当 GUI 响应迟钝或需集成进脚本时,可直接调用 VSCode 的 CLI 工具 code。前提是已将 code 加入系统 PATH(可通过 VSCode 命令面板运行 Shell Command: Install 'code' command in PATH 补全)。
- 更新全部扩展:
code --update-extensions - 仅列出待更新项(预检用):
code --list-extensions --show-versions | grep -E "\s+[0-9]+\.[0-9]+\.[0-9]+$"(Linux/macOS) - Windows PowerShell 等价写法:
code --list-extensions --show-versions | Select-String "\s+\d+\.\d+\.\d+$" - 该方式绕过 UI 层,但不会触发扩展的 post-update 脚本(如某些主题需重载窗口),更新后建议手动
Developer: Reload Window
为什么别轻易装“Auto Update Extensions”类插件
这类插件(如旧版 auto-update-extension)常因 VSCode 扩展 API 变更而失效,最新版多数已停止维护。更关键的是它们往往在后台静默更新,可能引发以下问题:
- 更新后扩展行为突变(例如
Prettier升级到 3.x 后默认禁用semi,导致格式化结果意外改变) - 与工作区设置冲突(如某项目锁定
eslint-plugin-reactv7.x,插件却强行升到 v8.x 报错) - 无法控制更新时机——你正在调试时突然重载
Debugger for Chrome,断点全部丢失 - 部分插件甚至会覆盖
extensions.autoUpdate设置,让 VSCode 原生配置失效
真正需要自动化更新的场景,建议用脚本 + code --update-extensions 定时执行,并配合 settings.json 中的 "extensions.autoUpdate": false 显式关闭干扰项。











