vscode无统一插件缓存开关,需按插件类型禁用其自建缓存:python设"python.languageserver":"none"和"python.cachedirectory":"";eslint设"eslint.options":{"cache":false};prettier删.projectcache文件并启用"prettier.requireconfig";同时清理globalstorage、workspacestorage中对应插件id子目录,并确保插件进程已终止。

VSCode 本身没有“插件本地缓存开关”,禁用的是插件自己建的缓存目录和行为
VSCode 不提供统一的「禁用插件缓存」功能,所谓“插件缓存”其实是插件在运行时自行创建的临时文件、语言服务器快照、node_modules 缓存或 globalStorage 数据。禁用它的核心思路是:不让插件写、不让它读、或者让它根本起不来。
常见错误认知是去 settings.json 里找一个叫 cache.enabled 的通用配置 —— 它不存在。你得查具体插件文档,看它暴露了哪些控制缓存的开关。
按插件类型关闭缓存:Python、ESLint、Prettier 的典型做法
不同插件缓存机制差异很大,直接关掉对应配置项比删文件更安全、可复现:
-
ms-python.python:设"python.languageServer": "none"可彻底停掉 Pylance/Pyright 的缓存加载;再加"python.cacheDirectory": ""(空字符串)能阻止它在~/.vscode/extensions/ms-python.python-*/cache下建新目录 -
dbaeumer.vscode-eslint:关"eslint.experimental.useFlatConfig"(如果用了旧版配置),并设"eslint.options": {"cache": false}—— 注意这是传给 ESLint CLI 的参数,不是 VSCode 设置项,必须写对位置 -
esbenp.prettier-vscode:它不维护独立缓存,但会读取项目根目录下的.prettiercache(如有)。直接删这个文件 + 确保"prettier.requireConfig": true且项目无配置时,它就几乎不落盘
手动清理插件缓存目录前,先确认它在哪
插件缓存不会全堆在 ~/.vscode/extensions/ 里,很多藏在用户数据路径下,删错位置反而引发启动异常:
-
globalStorage:存放插件私有状态(如 API token、上次同步时间),路径为~/.vscode/globalStorage/(Linux/macOS)或%APPDATA%\Code\globalStorage\(Windows),文件夹名通常是插件 ID(如ms-python.python) -
WorkspaceStorage:按工作区哈希隔离,每个项目独有一份,含语言服务器进程快照,路径类似~/.vscode/WorkspaceStorage/xxx... -
CachedData:VSCode 自己的二进制缓存,插件可能往里写预编译模块,路径为~/.vscode/CachedData/或%APPDATA%\Code\CachedData\
不要直接清空整个 CachedData 或 WorkspaceStorage —— 这会导致所有插件重初始化,启动变慢。只删对应插件 ID 的子目录更稳妥。
禁用插件后缓存还在?说明它根本没被真正卸载
禁用插件(extensions.disabled)只是跳过加载,已驻留内存的语言服务器或后台进程仍可能持续写缓存。验证方法:
- 按
Ctrl+Shift+P输入Developer: Show Running Extensions,看目标插件的Activation Events列是否还有onStartupFinished或workspaceContains:**/*.py类型 - 终端执行
lsof -u $USER | grep -i python(macOS/Linux)或任务管理器搜pylance/eslint进程,确认是否仍在运行 - 若仍有活动进程,必须重载窗口(
Developer: Reload Window)或完全退出 VSCode 再重启
真正干净的缓存控制,永远建立在「插件不运行」的基础上。光删目录、改配置,不如先确保它连进程都没起来。











