extensions: install from vsix失败主因是路径错误、签名校验未通过或临时目录被拦截;需断网后安装、校验.vsix完整性、确认package.json中engines.vscode版本兼容,并修复~/.vscode/extensions权限或windows路径含中文/空格问题。

Extensions: Install from VSIX 命令失败,基本不是插件本身问题,而是路径、签名或校验环节被卡住;自动格式化不生效,90% 情况下不是配置写错了,而是格式化工具没装、没启用,或语言模式没识别对。
安装插件卡在“Installing…”或报 EACCES/EPERM
这是 macOS/Linux 权限错位和 Windows 路径解析失败的典型表现,不是网络慢。
- macOS/Linux:检查
~/.vscode/extensions/所有者是否为当前用户,执行ls -ld ~/.vscode/extensions;若属主是root,运行sudo chown -R $USER:$GROUPS ~/.vscode - Windows:避免用户目录含中文(如
C:\Users\张三)或空格(如C:\Program Files\),VSCode 启动时会把路径传给 Node.js 子进程,未转义就直接崩 - 所有平台:删掉
~/.vscode/.extensions-tmp(Linux/macOS)或%USERPROFILE%\.vscode\.extensions-tmp(Windows),这个临时解压目录被杀软拦截后,VSCode 不报错,只干等
Failed to fetch extension 或请求一直 pending
VSCode 1.85+ 默认连的是 open-vsx.org,但国内 DNS 经常解析失败或 fallback 到已停用的旧地址,导致静默 404。
- 别改系统代理——VSCode 不继承环境变量里的
HTTP_PROXY,得在设置里显式填http.proxy - 最快验证方式:打开开发者工具(
Ctrl+Shift+P→Developer: Toggle Developer Tools),切到 Network 标签,点一次安装,看请求发往哪个域名、是否超时 - 临时换源最稳:在
settings.json里加这两行(注意逗号):"extensions.gallery.serviceUrl": "https://vscode-ext.oss-cn-shenzhen.aliyuncs.com/gallery/""extensions.gallery.itemUrl": "https://vscode-ext.oss-cn-shenzhen.aliyuncs.com/gallery/item"
手动安装 .vsix 文件却提示 Unable to load extension
不是文件损坏,而是 VSCode 在加载前仍会尝试联网校验签名——哪怕你断网拖进来了,它也会先发请求,失败后才退到本地加载,而这个过程可能被跳过或中断。
- 必须先断网,再启动 VSCode,再拖入
.vsix(否则它会卡在 fetch 阶段) - 或提前关掉校验:
settings.json加"extensions.installVerification": false(仅调试用,验证完记得删) - 检查
.vsix解压后的package.json里engines.vscode字段,比如你用的是1.90.0,但插件写的是^1.85.0,没问题;若写的是^1.92.0,就真不兼容
自动格式化代码不触发,Format Document 按了没反应
格式化功能依赖三个独立条件同时满足:插件已安装且启用、对应语言的 formatter 已注册、当前文件的语言模式正确识别。缺一个,就静默失效。
- 确认插件装了且没被禁用:打开
Extensions: Show Installed Extensions,搜prettier或eslint,右键看是否勾选了 “Enable” - 检查语言模式:右下角状态栏看当前文件是不是
javascript,不是的话点一下切换成正确类型(比如.ts文件被识别成plaintext就不会触发 TS 格式化) - 某些插件(如
esbenp.prettier-vscode)需额外装 CLI:npm install -g prettier,否则即使插件启用,也会在输出面板报Cannot find module 'prettier' - 别只配
[javascript].editor.formatOnSave,要确保顶层也开了editor.formatOnSave,否则子语言配置不生效
Extension host terminated unexpectedly,有就说明某个插件在激活时挂了,得用 code --disable-extensions 启动后逐个启用排查。











