vscode离线文档缓存主要藏在extensions和globalstorage目录下,常见于含stubs、types、docs、cache关键词的子目录;remote场景下则位于远程机器的~/.vscode-server/extensions/中。

VSCode离线文档缓存藏在哪
VSCode本身不自带“离线文档”,你看到的几十GB文档空间,基本都来自两个地方:Pylance、Python、ESLint这类语言扩展下载的本地类型库(type stubs),以及 Remote - SSH 或 Dev Containers 在远程环境里拉取的完整文档镜像。它们不会出现在 workspaceStorage 里,而是混在 extensions 或 GlobalStorage 目录下,名字常带 types、stubs、docs、cache 等关键词。
怎么定位并删掉真正的离线文档缓存
别靠猜,用命令行直接搜体积大户:
- macOS/Linux:运行
find ~/.vscode/extensions -name "*stubs*" -o -name "*types*" -o -name "*docs*" -type d -exec du -sh {} + 2>/dev/null | sort -hr | head -5 - Windows PowerShell:运行
Get-ChildItem "$env:USERPROFILE\.vscode\extensions" -Recurse -Directory | Where-Object {$_.Name -match 'stubs|types|docs'} | ForEach-Object { $size = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum; [PSCustomObject]@{Path=$_.FullName; SizeMB=[math]::Round($size/1MB, 2)} } | Sort-Object SizeMB -Descending | Select-Object -First 5
结果里体积超过 500MB 的目录,大概率就是 Pylance 下载的 typeshed 全量副本,或 ESLint 拉的 typescript-eslint 文档快照——这些不是运行必需,删了重启后按需加载即可。
删错会丢代码提示或跳转吗
不会彻底失效,但会有短暂退化:
- 删掉
ms-python.vscode-pylance-*/typeshed后,首次打开 Python 文件时类型推导变慢几秒,之后自动恢复;Go to Definition仍可用,只是部分第三方库的深度跳转可能暂时 fallback 到源码而非 stub - 删掉
dbaeumer.vscode-eslint-*/node_modules/typescript-eslint下的docs子目录,不影响校验逻辑,只让插件内嵌的规则说明页打不开(不影响实际 lint) - 绝对不要删
ms-vscode.vscode-typescript-next或esbenp.prettier-vscode这类主扩展目录本身,只动它里面的stubs或cache/docs子路径
Remote 工作区的离线文档最隐蔽也最占空间
如果你用过 Remote - SSH 或 Dev Containers,离线文档很可能不在本地 .vscode/extensions,而在远程机器的 ~/.vscode-server/extensions/ 或容器内的 /root/.vscode-server/extensions/。本地磁盘看着不占,但远程磁盘爆满也会拖慢整个体验。
清理方式:
- 先断开 Remote 连接,确保所有
code-server进程退出 - SSH 登上去,运行
du -sh ~/.vscode-server/extensions/**/stubs* ~/.vscode-server/extensions/**/types* 2>/dev/null | sort -hr | head -3
- 删对应目录,比如
rm -rf ~/.vscode-server/extensions/ms-python.python-*/stubs
真正麻烦的不是“找不到哪”,而是你以为删的是本地缓存,其实主力文档早被同步到远程了——这点最容易被忽略。











