VSCode离线文档缓存不在Cache目录,而是分散在workspaceStorage、插件extensions子目录及GlobalStorage中;需手动定位对应插件路径(如ms-python.python的out/docs或typescript的WorkspaceStorage/{guid}/typescript)并删除后彻底退出VSCode再重启才能生效。

VSCode 离线文档(比如内置的 TypeScript/JavaScript 参考、Python 文档插件缓存)的历史记录和缓存,不走常规 Cache 目录,而是混在 workspaceStorage 或插件专属子目录里;直接删 Cache 完全无效。
离线文档缓存藏在哪?不是 Cache 目录
VSCode 自身不提供“离线文档”功能,所谓离线文档实际来自插件(如 ms-python.python、dbaeumer.vscode-eslint、bierner.markdown-preview-github-styles),或语言服务器(如 TypeScript Server)预加载的文档索引。这些数据不会写进 %APPDATA%\Code\Cache,而是分散在:
-
workspaceStorage:每个工作区子目录下可能有node_modules文档映射、doc-cache或tsconfig.json关联的符号索引 -
extensions插件目录内:比如ms-python.python-2024.12.0\out\docs\或node_modules\@types\下的声明文件 -
GlobalStorage:部分插件(如esbenp.prettier-vscode)会把格式化规则缓存写在这里,路径类似%APPDATA%\Code\GlobalStorage\esbenp.prettier-vscode\
常见错误现象:你删了 Cache 和 GPUCache,重启后悬停提示仍飞快弹出旧 API,说明文档索引根本没动过。
怎么定位并清理具体插件的文档缓存
先确认是哪个插件提供的离线文档——打开命令面板 Ctrl+Shift+P,输入 Developer: Show Running Extensions,看哪些插件启用了 Language Server 或 Docs Provider。然后按插件来源处理:
- Python 插件:进
~/.vscode/extensions/ms-python.python-*,删out\docs\和dist\pyright\stubs\(如果存在) - TypeScript/JS:删
%APPDATA%\Code\WorkspaceStorage\{guid}\typescript\下的node_modules和types子目录 - Markdown 预览插件:检查
bierner.markdown-preview-github-styles-*目录,删node_modules和dist\docs\ - 所有插件共用的
@types缓存:它通常被npm或yarn管理,不在 VSCode 目录内,得去项目根目录运行npx typescript --showConfig看typeRoots路径再清
注意:workspaceStorage 里的文档缓存是按工作区隔离的,删错子目录只影响那个项目,不会全局失效。
search.history 和 workbench.commandPalette.history 不是文档缓存
这两个字段控制的是搜索关键词和命令面板历史,和离线文档无关。它们只存字符串数组,删了也不会让 Hover 提示变空或重载文档索引。误删只会让你下次搜 Array.prototype.map 时得重新输一遍,不影响底层文档加载逻辑。
真正影响文档加载速度和内容新鲜度的,是插件自身是否触发了 reload documentation cache 逻辑——多数插件没有暴露这个命令,只能靠删对应目录 + 重启 VSCode 强制重建。
别指望 Developer: Reload Window 清掉文档缓存
这个命令只刷新 UI 层和 JS 模块,不触碰插件磁盘缓存或语言服务索引。即使你看到提示“已重载”,悬停显示的仍是上次加载的 node_modules/@types/react 内容。必须手动删物理路径,且确保 VSCode 进程已完全退出(包括 Code Helper (Renderer)),否则文件句柄被锁,删了也白删。


















