VSCode启动卡在“Activating Extensions”主因是扩展激活事件过宽泛,如“*”或“onStartupFinished”,导致Prettier、ESLint等插件一启动即强制初始化;应通过Developer: Show Running Extensions定位高耗时扩展并禁用,同时清理workspaceStorage和cache目录,并彻底退出VSCode进程后再操作。

VSCode启动卡在“Activating Extensions”?先看activationEvents
插件不是装上就慢,而是被"*"或"onStartupFinished"这类宽泛激活条件强行拉起来的。比如esbenp.prettier-vscode、dbaeumer.vscode-eslint默认一开编辑器就初始化语言服务和配置扫描,哪怕你还没打开任何JS/TS文件。
实操建议:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Developer: Show Running Extensions,重点关注Activation Time > 300ms且Host为Renderer的扩展 - 右键禁用非当前项目必需的扩展,优先关掉
Remote - SSH、Docker、GitHub Copilot这类高开销扩展 - 对
Prettier和ESLint,在settings.json中显式关闭自动触发:"prettier.autoFormatOnSave": false、"eslint.enable": false,改用快捷键手动调用
删Cache和GPUCache前,必须彻底退出VSCode进程
删了目录但磁盘空间没释放、重启后仍卡顿,90%是因为Code.exe、Code Helper.exe或node.exe仍在后台锁着文件。尤其是用了Remote - WSL或Dev Containers的用户,残留的vscode-server进程会持续占用缓存句柄。
实操建议:
- Windows:任务管理器 → “详细信息”页 → 结束所有
Code.exe、Code Helper.exe、node.exe - macOS:活动监视器 → 搜索
Code→ 强制退出全部相关进程 - Linux:终端执行
pkill -f "code"或killall code - Remote场景下,先执行
Ctrl+Shift+P→Remote-WSL: Close Remote Connection,再运行wsl --shutdown
WorkspaceStorage才是C盘空间真正的“黑洞”
%APPDATA%\Code\Cache和GPUCache删完能立刻释放几GB,但真正占几十GB的往往是workspaceStorage——它为每个打开过的工作区生成独立缓存目录,文件夹名是随机哈希值,无法靠名字判断归属。长期维护的老项目、频繁切换的多工作区,会让这个目录滚到4–10 GB单个子目录。
实操建议:
- 路径位置:
%APPDATA%\Code\User\workspaceStorage(Windows)、~/Library/Application Support/Code/User/workspaceStorage(macOS)、~/.config/Code/User/workspaceStorage(Linux) - 别手动翻哈希文件夹——用命令行按修改时间排序定位旧项目:
Get-ChildItem | Sort-Object LastWriteTime | Select-Object Name, LastWriteTime(PowerShell) - 确认某子目录对应已废弃项目后,直接删除整个文件夹;保留最近3个月内活跃过的即可
- 想省事可装
Workspace Storage Cleanup插件,它能自动匹配storage.json中的项目路径并标记无用项
CachedExtensions损坏比缺失更致命
很多“跳转定义失败”“格式化无响应”问题,根源不是插件没装,而是ms-python.python-2024.12.0-cache这类带-cache后缀的子目录残留了中断更新的损坏包。VSCode启动时会优先加载这些缓存副本,而不是主扩展目录,结果就是语言服务器起不来、补全卡死。
实操建议:
- 进
~/.vscode/extensions/(Windows是%USERPROFILE%\.vscode\extensions),筛选名称含-cache的文件夹,全删 - 某些插件(如
ms-python.python)还会在自己子目录里建cache/或__pycache__/,需进入对应文件夹手动清理 - 删完重启,VSCode会自动重新下载并解压最新版插件;若仍报错,再检查
settings.json中是否误配了python.defaultInterpreterPath等路径
清理本身不难,难的是判断该删谁、不该碰哪。最常被忽略的是workspaceStorage里那些“看起来像乱码”的文件夹——它们背后可能连着你三年前的毕业设计,删错就等于丢掉所有断点和调试历史。动手前,先用Developer: Reload Window试试能否缓解;如果只是临时卡顿,重载比清缓存快得多。


















