vs code插件无法直接回滚,必须手动下载旧版.vsix并修改package.json中engines.vscode字段以匹配当前vs code版本,同时关闭extensions.autoupdate并禁用预发布选项,否则几分钟内会被自动覆盖。

VSCode 插件市场本身不支持版本回滚——点“Install”永远只下最新版,必须绕开市场手动干预。
怎么查当前插件真实安装的版本号
UI 上显示的版本号可能滞后或不准,尤其刚装完旧版时。最可靠的方式是终端命令:
- 运行
code --list-extensions --show-versions,输出形如esbenp.prettier-vscode@9.10.3,这个@9.10.3就是实际加载的版本 - 进插件详情页 → 点右上角 ⋯ → “Details”,往下拉看 “Version” 字段,它读的是插件目录下
package.json里的version值,比右下角数字更准 - 想确认是否真兼容你当前 VSCode 版本?打开插件目录(如
~/.vscode/extensions/esbenp.prettier-vscode-9.10.3/package.json),检查"engines": {"vscode": "^1.76.0"}是否满足code --version输出的版本
为什么直接装旧版 .vsix 还会失败
VSCode 1.85+ 默认校验 engines.vscode 字段,且严格屏蔽声明版本低于当前 VSCode 的插件。常见错误:
-
Extension is not compatible with Code 1.79.2:.vsix 内package.json中"vscode": "^1.90.0"被拒绝 - Marketplace 页面不显示“Install Another Version…”菜单:URL 缺少
?vscodeVersion=1.79.2参数 - 装完插件仍被禁用:本地
package.json没改,或改了但没执行Developer: Reload Window
解决方法不是硬装,而是先解压 .vsix → 修改 extension/package.json 中的 engines.vscode 字段,例如从 "^1.90.0" 改成 ">=1.75.0",再重打包为 .vsix 安装。
装完旧版后几分钟又被覆盖?关掉这两个开关
自动更新机制是回滚失败的头号原因,光装旧版没用:
- 设置里搜
extensions.autoUpdate,设为false - 进插件详情页 → 点右上角 ⋯ → 确认没勾选
Switch to Pre-release Version(预发布版版本号常高于 stable,会强制覆盖) - Remote-SSH 类插件还要额外处理远端:
ssh连接后删掉远端的~/.vscode-server目录,否则本地降级了,远端 server 仍是新版,连接卡死在Starting VS Code Server
最容易被忽略的是 engines.vscode 字段的语义:它不是“推荐版本”,而是加载门槛。哪怕插件代码完全没调新 API,只要字段声明不匹配,VSCode 就静默禁用——改它比换插件还关键。











