code --install-extension 是离线安装唯一可靠入口;需先运行 code --version 确认 cli 可用,路径必须为绝对路径且含空格时加英文双引号,拖拽失败主因是未加载工作区、无窗口焦点或文件损坏,功能不生效常因 lsp 服务未离线部署。

code --install-extension 是离线安装唯一可靠入口
图形界面点“从 VSIX 安装…”在企业策略或权限受限环境下常静默失败,不报错也不提示。命令行方式能立刻暴露问题,比如路径错、版本不匹配、CLI 未注册——这些才是真卡点。
必须先确认 code 命令可用:code --version;若提示 command not found,在 VSCode 中按 Ctrl+Shift+P 输入 Shell Command: Install 'code' command in PATH 并执行。
- 路径必须是绝对路径:Windows 推荐正斜杠写法,如
code --install-extension C:/ext/ms-python.python-2024.6.0.vsix - 路径含空格或中文时,必须加英文双引号:
code --install-extension "C:/my ext/vue.vsix" - Linux/macOS 不支持
~/这类缩写,~/Downloads/ext.vsix会直接失败
拖拽安装没反应?不是插件坏了,是三个硬条件没对齐
这是封闭环境中最高频的“假失败”:VSCode 根本没收到安装信号,而不是安装流程出错。
- VSCode 必须已加载工作区(空白窗口或远程 SSH 状态下拖放会被静默忽略)
- 窗口必须有系统焦点(任务栏图标高亮,且不能处于全屏模式)
- 拖的是原始
.vsix文件,不是解压后的文件夹、.zip或双后缀文件(如prettier.vsix.zip)
验证方法:unzip -l xxx.vsix,输出顶层目录应含 extension/ 和 extension/package.json;若报错或显示零散文件,说明文件已被浏览器或杀软静默解压损坏。
装上了但 Python/ESLint/Vue 功能不生效?LSP 服务根本没落地
像 ms-python.python、dbaeumer.vscode-eslint、Vue.volar 这类插件,只装 .vsix 只是注册前端界面,首次打开对应文件时才会尝试下载 pyright-server、eslint-cli、volar-server —— 默认走外网,在离线环境卡在 “Downloading…” 状态栏不动。
- 正确做法:在有网机器上完整触发一次——打开一个
.py/.vue文件,等状态栏显示 “Ready” 后,再把整个~/.vscode/extensions/ms-python.python-2024.6.0/目录(含子目录里的 native 二进制)拷到内网机对应路径下 - 复制完必须彻底退出 VSCode,包括右下角托盘进程,否则缓存不刷新
- Volar 需手动点右下角 Vue 图标 →
Take Over Mode,否则语法支持不生效
版本、架构、依赖三重校验缺一不可
VSCode 对不兼容插件的处理极其安静:不报错、不提示、只是跳过加载。你看到“已安装”,不代表它真在跑。
- 查本地 VSCode 版本:
code --version,取第一位小数点前数字(如1.85.2→1.85) - 解压
.vsix,看extension/package.json里"engines": {"vscode": "^1.80.0"},要求本地 ≥ 1.80.0 - Help → About 里括号中的
arm64/x64必须和插件构建目标一致;ARM Mac 装 x64 插件会导致 native 模块加载失败,无报错但功能空白 - 真实依赖藏在
package.json的extensionDependencies字段里,不是插件页面写的“Recommended”;比如装esbenp.prettier-vscode却漏了bradlc.vscode-tailwindcss,格式化直接失效
最易被忽略的是:装完插件后,没关掉所有 VSCode 进程就重开,extensions 目录被锁住,新插件根本进不了加载队列。











