VSCode插件因engines.vscode字段不匹配被静默禁用,需通过code --version确认版本,修改.vsix中extension/package.json的engines值为">=1.85.0"等宽松范围,重打包后用Extensions: Install from VSIX安装。

VSCode 版本兼容性问题不是“偶尔出错”,而是 engines.vscode 字段在启动时就拒绝加载插件——你根本看不到报错日志,插件图标灰掉、命令消失、语言服务不启动,都是它干的。
怎么看当前 VSCode 版本是否匹配插件要求
别信安装包名字或“关于”窗口里模糊的描述,必须拿到精确数字:
- 终端执行
code --version(前提是安装时勾选了“添加到 PATH”) - VS Code 内按
Ctrl+Shift+P→ 输入Help: About→ 看“版本”字段,例如1.90.2 - 插件要求通常写在
package.json的"engines": { "vscode": "^1.85.0" }里,注意语义化版本规则:^1.85.0表示>=1.85.0 ,但 <code>1.84.9就直接被拒
常见误判:看到插件市场显示“已安装”,不代表它已激活;右键菜单没出现、Ctrl+Shift+P 找不到对应命令,大概率是 isActive 为 false。
插件报“not compatible with VS Code '1.xxx'”怎么修
这是最典型的兼容性红灯,错误信息里一定含 ms-ceintl.vscode-language-pack-zh-hans 或 FittenTech.Fitten-Code 这类 ID,以及明确的版本号。它不是网络问题,也不是权限问题,就是硬性校验失败。
- 别去插件市场点“Install Another Version…”——很多旧版已下架或灰显
- 下载对应插件的
.vsix文件(比如从 marketplace.visualstudio.com 搜索后点击“Download Extension”) - 用
7-Zip(Windows)、unzip(Linux)或Archive Utility(macOS)解压该.vsix - 打开
extension/package.json(不是根目录那个!),修改"engines": { "vscode": ">=1.85.0" }(推荐宽松写法,兼容未来小版本) - 保存后重新打包为 ZIP,再把后缀名改回
.vsix - VS Code 命令面板运行
Extensions: Install from VSIX,选这个改过的文件
注意:Windows 资源管理器双击解压再保存会破坏 ZIP 结构,导致重装失败;必须用专业解压工具操作。
Remote-SSH / WSL 连接失败,先查 vscode-server 版本对不对
Remote 扩展不是纯前端插件,它会在远端自动拉取一个 vscode-server 二进制。这个 server 版本必须和本地 code --version 输出的版本严格一致,差一个小版本(如 1.102.3 vs 1.103.0)就会卡在 Starting VS Code Server 或报 Failed to fetch commit hash。
- 连接失败时,先看 VS Code 右下角状态栏有没有显示远程连接目标(如
SSH: user@host),没有说明根本没连上 - 打开输出面板(
Ctrl+Shift+U),选择Remote-SSH或Log (Remote Server)查看真实错误 - 手动清理远端旧 server:
rm -rf ~/.vscode-server(Linux/macOS)或del /s /q %USERPROFILE%\.vscode-server(Windows WSL) - 重连时 VS Code 会自动下载匹配本地版本的 server,前提是本地版本没被降级或篡改
如果你刚升级了 VS Code 主程序,但远端还在用旧版 server,它不会自动更新——必须手动清空再触发重拉。
中文包装完还是英文?检查 locale.json 是否被覆盖
中文包启用 ≠ 界面变中文。VS Code 只认 locale.json 文件里的值,哪怕插件已激活、版本也对得上,只要这个文件不存在、内容写错、或被更高优先级设置覆盖,界面就一定是英文。
- 路径必须准确:
Windows:%APPDATA%\Code\User\locale.json
macOS:~/Library/Application Support/Code/User/locale.json
Linux:~/.config/Code/User/locale.json - 内容只能是合法 JSON:
{"locale": "zh-hans"}(注意是zh-hans,不是zh-cn或zh) - 改完必须完全退出 VS Code(包括系统托盘进程),再重新启动;只关窗口不退出进程,配置不生效
- 如果存在多个配置层级(用户级、工作区级、远程级),以最高优先级的
locale.json为准,其他地方写的"locale"设置会被忽略
最容易被忽略的是:离线环境里,你改了 .vsix,装上了中文包,却忘了创建或修正 locale.json——结果忙活半小时,界面还是英文。


















