离线安装失败主因常是磁盘满载导致enospc错误,vscode静默拒绝写入而不提示;需检查系统盘剩余空间是否≤500mb,确认df -h(linux/macos)或资源管理器属性(windows)后清理释放空间。

离线安装失败,其实是磁盘已满导致的 ENOSPC 错误
VSCode 离线安装插件失败,报 Extension is corrupt 或卡在 “Installing…”,90% 不是 vsix 文件坏了,而是磁盘写入被系统拒绝——ENOSPC(No Space Left on Device)错误静默发生,VSCode 不提示空间不足,只让安装“看起来失败”。你检查 .vsix 完整性没问题、版本也匹配,但就是装不上,大概率是 C 盘(或用户数据盘)真实可用空间 ≤ 500MB。
- 运行
df -h(Linux/macOS)或查看资源管理器属性(Windows),确认系统盘剩余空间是否 - 特别注意:
%APPDATA%\Code\Cache、%APPDATA%\Code\CachedData、%APPDATA%\Code\User\workspaceStorage这三处常合计占 5–15GB,且 VSCode 启动/安装时会持续往里写 - 别信“C 盘还有 2GB 就够”——VSCode 解压 vsix 需要临时双倍空间(比如 200MB 的 vsix,解压过程峰值占用可能达 400MB+)
必须立刻清理的三个缓存目录(不删配置、不重装插件)
清理顺序不能错:先停 VSCode 进程,再删缓存,否则部分目录会被锁住或写入残留。这些路径不碰 settings.json 和 extensions 主目录,安全可操作。
-
Chromium 缓存(最安全):
%APPDATA%\CodeCache(Windows)或~/Library/Caches/com.microsoft.VSCode(macOS)或~/.cache/Code(Linux)——删完仅首次 UI 加载略慢 -
语法与符号缓存(重点清):
%APPDATA%\Code\CachedData(Windows)或~/Library/Application Support/Code/CachedData(macOS)——补全/跳转异常时必清 -
工作区索引缓存(最大隐形杀手):
%APPDATA%\Code\User\workspaceStorage(Windows)或~/Library/Application Support/Code/WorkspaceStorage(macOS)——每个打开过的文件夹一个子目录,单个常超 1GB,可放心全删
装不上插件?先禁用高危写入插件再试
磁盘快满时,某些插件仍会强行刷缓存,导致安装中途触发 ENOSPC 并中断流程。不是它们“有问题”,而是它们的设计本就依赖频繁写磁盘。
-
ms-python.python:每次启动都在扩展目录下建cache/和__pycache__/,大项目写入量可达 MB 级 -
eamodio.gitlens:后台扫描 Git 历史并持久化到gitlens/子目录,不动它就一直写 -
esbenp.prettier-vscode:保存大 JSON/CSV 时生成中间格式化产物,极易爆满
临时解决:命令面板输入 Extensions: Disable All Installed Extensions → 重启 VSCode → 再执行 code --install-extension xxx.vsix。长期方案是在工作区 .vscode/settings.json 中加:
"gitlens.advanced.caching": false, "prettier.requireConfig": true, "python.cacheBackend": "none"
根本解法:把插件和缓存全迁出系统盘
清理只是应急,真正解决问题得让 VSCode 默认就不往 C 盘写。插件路径无法通过设置修改,但可通过启动参数绕过硬编码逻辑——这是唯一符合 VSCode 加载机制的合法方式。
- Windows:右键快捷方式 → 属性 → 目标栏末尾追加:
--extensions-dir "D:\VSCodeExtensions" --cache-dir "D:\VSCodeCache"(路径必须英文双引号包裹) - macOS/Linux:终端启动时用:
code --extensions-dir ~/vscode-exts --cache-dir ~/vscode-cache - 注意:
--user-data-dir也建议一并迁移(如--user-data-dir ~/vscode-userdata),否则extensions仍会随用户数据目录默认落到系统盘
迁移后首次启动会重建所有缓存,旧 extensions 目录不会自动复制,需手动拷贝或重装——但从此 C 盘再不会因 VSCode 慢慢变红。最容易被忽略的是:快捷方式改参后必须关掉所有 VSCode 进程(包括托盘里的 Code Helper),否则新参数不生效。











