报“not compatible”是engines.vscode版本不匹配导致的静默拒绝加载,非网络或插件损坏;需用unzip -p plugin.vsix extension/package.json | grep engines查声明版本,确保本地code --version≥该值,并注意架构匹配。

code --install-extension 报 “not compatible with VS Code” 怎么快速定位
这个错误不是网络问题,也不是插件坏了,而是 VSCode 启动时校验 engines.vscode 字段失败后静默拒绝加载——它不提示具体哪一版不匹配,只卡住。
- 运行
code --version,取前两位(如1.92.2→1.92) - 用
unzip -p plugin.vsix extension/package.json | grep engines查插件要求的最低版本(如"vscode": "^1.93.0") - 本地版本必须 ≥ 插件声明的最低版本;差一个小版本(
1.92vs^1.93.0)就会被拒 - Help → About 里确认架构(
x64/arm64),ARM Mac 装 x64 版本的.vsix也会触发同类报错,但无明确提示
修改 .vsix 中的 engines.vscode 字段
手动改一行比找旧版包快得多,且适用于所有语言包、Python、Vue 等插件。关键点是别破坏 ZIP 结构,也别改错位置。
- 用
7-Zip(Windows)、Archive Utility(macOS)或unzip(Linux)解压.vsix文件 - 进入
extension/package.json(注意不是根目录那个package.json) - 找到
"engines": { "vscode": "^1.93.0" },改成宽泛兼容的写法,例如:"vscode": ">=1.85.0" - 保存后,用同一工具重新打包为 ZIP,再把后缀名改为
.vsix(Windows 下勿用资源管理器双击解压重命名) - 执行
code --install-extension modified.vsix --allow-unverified,加--allow-unverified绕过签名校验
装完仍不生效?检查语言服务器和进程残留
插件显示“已安装”不等于功能可用。很多插件(如 ms-python.python、Vue Language Features (Volar))首次启用才下载 language server,离线环境会卡在后台不动。
- 状态栏若显示
Downloading...或 Output 面板(View → Output → Python/Vue)报spawn ENOENT,就是 LSP 没带全 - 正确做法:在有网机器上打开一个
.py或.vue文件,等状态栏停止闪烁、Output 面板不再报错,再拷整个扩展目录(如~/.vscode/extensions/ms-python.python-2024.6.0/)到离线机对应路径 - 必须彻底退出 VSCode(包括右下角托盘里的
Code Helper进程),否则缓存不刷新,新文件不加载 - Windows 下若用桌面快捷方式启动,可能调用的是旧版 VSCode 实例,建议从开始菜单或命令行启动
中文包装不上?重点核对三个硬性条件
中文包不是普通插件,它依赖 VSCode 内置的 vs/nls.js 模块,且对配置项大小写、路径、系统 locale 极其敏感。
- 必须用官方 ID:
MS-CEINTL.vscode-language-pack-zh-hans,第三方包在 VS Code 1.85+ 后基本失效 -
settings.json中不能写"locale": "zh-cn",必须是"locale": "zh-hans",写错就报invalid locale value - Windows 上若系统区域设为英语且启用了 “Beta: Use Unicode UTF-8”,VSCode 会跳过语言包加载;macOS/Linux 检查
LANG是否被覆盖(如LANG=en_US.UTF-8) - 装完重启后仍是英文?先关掉所有 VSCode 进程,再从应用坞/开始菜单启动,避免继承旧实例的 locale 状态
.vsix 的 ZIP 结构完整性极其敏感,少一个字节、多一个空格、文件头错位,都会静默失败——它不会报错,只会假装没看见。











