必须用多个--install-extension参数逐个指定绝对路径的.vsix文件,路径含空格或中文需加英文双引号;离线安装还需同步语言服务器二进制文件并关闭VSCode后台进程。

必须用多个 --install-extension 参数逐个指定,不能合并或省略路径 —— 这是唯一可靠、可脚本化、能明确报错的批量安装方式。
code --install-extension 不支持空格分隔多个插件
VSCode 命令行工具明确不接受 code --install-extension a.vsix b.vsix 这类写法。它会把 b.vsix 当作下一个命令参数,直接忽略或报错 Unknown argument b.vsix。
- 每个插件必须带一个独立的
--install-extension参数 - 路径必须是绝对路径或以
./开头的相对路径(不能只写文件名) - Windows 下路径含空格或中文时,必须用英文双引号包裹,例如:
"C:/vsix/ms-python.python-2024.12.1.vsix" - Linux/macOS 推荐统一用正斜杠
/,避免反斜杠转义问题
离线批量安装要提前关掉所有 VSCode 进程
后台残留的 Code.exe(Windows)或 Code Helper(macOS/Linux)会导致安装静默失败:插件看似装上,但状态栏不显示语言服务,打开文件也无高亮或补全。
- Windows:任务管理器 → 结束所有
Code.exe进程(包括“后台进程”标签页里的) - macOS:执行
killall -u $USER 'Code Helper'和killall 'Code' - Linux:运行
pkill -f 'code.*--no-sandbox'或直接killall code - 装完后无需重启 VSCode,插件会自动激活(除非被工作区禁用)
只装 .vsix 文件 = 白装,LSP 服务根本不会启动
Python、Vue、ESLint 等插件的 .vsix 只是前端壳,真正的语言服务器(如 pyright-server、volar-server)默认首次打开对应文件时才联网下载。离线环境里它就卡住,不报错、不提示、也不加载。
- 正确做法:在有网机器上,用同一版本 VSCode 打开一个
.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/ - 漏掉这个步骤,插件图标会显示“已启用”,但实际没有任何语言功能
依赖插件必须手动凑齐,vsce download 不拉依赖
插件 ID 列表或 vsce download ms-python.python 只下主包,不会自动下载其 extensionDependencies 声明的依赖项。漏掉就会卡在 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 手动找匹配版本) - 扩展包(Extension Pack)如
ms-python.python-extension-pack同样不可靠:它只触发“最新版”安装,不锁定版本,上线后可能因子插件升级导致冲突
最易被忽略的一点:签名验证失败在企业定制镜像中极常见,表现为插件装完几秒后自动卸载。此时需加 --disable-extension-corruption-check 临时绕过(仅限调试,生产环境应修复签名链)。


















