正确批量安装需用code --install-extension逐个指定绝对路径的.vsix文件,路径含空格或中文时须加英文双引号,不可合并参数;离线时还需提前触发LSP加载并拷贝完整扩展目录。

直接用 code --install-extension 批量安装是唯一可脚本化、可复现的方式,手动拖拽或图形界面点选在内网批量操作时极易静默失败或卡死。
怎么写正确的批量安装命令
VSCode 不支持 code --install-extension a.vsix b.vsix 这种写法。每个插件必须单独带一个 --install-extension 参数,路径必须是绝对路径,且含空格或中文时必须加英文双引号。
- Windows 示例:
code --install-extension "C:/vsix/ms-python.python-2024.12.1.vsix" --install-extension "C:/vsix/ms-toolsai.jupyter-2024.8.0.vsix" - Linux/macOS 示例:
code --install-extension /opt/vsix/prettier-9.10.3.vsix --install-extension /opt/vsix/eslint-8.56.0.vsix - 路径推荐用正斜杠(
/),避免 Windows 反斜杠转义问题 - 执行前务必关闭所有 VSCode 进程,包括系统托盘里的后台实例;Windows 可用任务管理器结束全部
Code.exe
为什么装上了却没功能:LSP 服务根本没落地
Python、Vue、ESLint 等插件的 .vsix 文件只是前端壳,真正的语言服务器(如 pyright-server、volar-server)默认首次打开对应文件时才联网下载。离线环境里它就卡住或跳过,不报错也不高亮。
- 解决方案不是重装插件,而是在有网机器上提前触发一次完整加载:打开一个
.py文件 → 等状态栏显示 “Python Language Server: Running” → 再把整个扩展目录(含node_modules和server.js)拷到内网机 - Windows 路径:
%USERPROFILE%\AppData\Roaming\Code\Extensions\ms-python.python-2024.12.1\ - Linux/macOS 路径:
~/.vscode/extensions/ms-python.python-2024.12.1/ - 只拷
.vsix文件 = 白装
依赖插件必须手动凑齐,vsce 不会自动拉
vsce download ms-python.python 只下 Python 主插件,但它的 extensionDependencies 声明了 ms-toolsai.jupyter ——漏掉这个,Python 插件启动后会卡在 “Downloading…” 状态,且无任何提示。
- 查依赖方式:解压
.vsix,运行unzip -p your-plugin.vsix extension/package.json | grep extensionDependencies - 常见组合必须成对下载:
ms-python.python+ms-toolsai.jupyter;vue.volar+@volar/vue-language-service(后者需从 GitHub Release 找对应版本) - 别信“一键打包站”,它们常漏依赖或混用平台架构(如在 M系列 Mac 上塞 x64 版本)
签名和路径错误导致静默失败
离线环境下 INVALID_SIGNATURE 错误很常见,不是文件损坏,而是 VSCode 无法校验微软证书链。同时,路径稍有偏差(比如相对路径、中文路径、双后缀名)就会完全不响应,且不报错。
- 必须加
--allow-unverified参数:code --install-extension python.vsix --allow-unverified - 验证是否为原始 .vsix:
unzip -l python.vsix应看到顶层是extension/目录,且含extension/package.json - Windows 下路径含中文或空格,不加双引号 = 命令被截断,静默失败
- 拖拽安装失败?先确认已打开一个工作区(哪怕空文件夹),且 VSCode 窗口是前台焦点状态
最易被忽略的是:装完插件列表里显示“已启用”,不代表能用;得打开对应文件类型,看输出面板(Ctrl+Shift+P → Developer: Toggle Developer Tools → Console 或 Output 标签页)有没有 spawn ENOENT 或 Failed to fetch ——这些才是真实失效信号。


















