VSCode扩展加载慢源于插件按宽松“按需激活”逻辑预加载,尤其含"*"或"onStartupFinished"的activationEvents会强制冷启时加载;应通过Developer: Show Running Extensions排查、禁用非核心插件,并优先启用插件内置性能优化选项。

扩展加载慢是因为 VSCode 启动时默认激活所有已启用插件
VSCode 不是“装上就用”,而是按需激活——但它的“按需”逻辑很宽松:只要插件声明了 activationEvents,且匹配当前工作区(比如打开 .js 文件触发 JavaScript 插件),就会在启动阶段预加载。更关键的是,很多插件把 "*" 或 "onStartupFinished" 写进 activationEvents,等于告诉 VSCode:“一开就给我上”。这些插件哪怕你只用过一次,下次启动仍会被拉起。
实操建议:
- 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P),运行Developer: Show Running Extensions,看哪些插件在“Active”状态但你根本没在用 - 检查插件的
package.json(在插件安装目录里,路径类似~/.vscode/extensions/author.name-1.2.3/package.json),重点关注activationEvents字段值;若含"*"、"onStartupFinished"、"onLanguage:json"等宽泛匹配,大概率拖慢冷启 - 对非核心插件(比如某主题、某小众格式预览器),直接右键 →
Disable (Workspace)或Disable (For All Folders),比卸载更安全,需要时再点回来
禁用插件不等于卸载,但禁用方式有关键区别
VSCode 提供三种禁用粒度,效果和影响完全不同:
-
Disable (Workspace):只在当前文件夹生效,适合临时关闭与项目无关的插件(如 Python 插件在纯前端项目里) -
Disable (For All Folders):全局禁用,重启后不会加载,但保留配置和更新记录——这是最常用、最稳妥的选择 -
Uninstall:彻底删掉,下次想用得重下、重配;某些插件(如ESLint、Prettier)卸载后可能残留用户设置,导致格式化失效却找不到原因
注意:Disable (For All Folders) 后,插件图标会变灰,但其 package.json 里的 activationEvents 依然存在——只是 VSCode 不再响应它。这点常被忽略,误以为“禁用了就等于没这回事”。
启动性能诊断必须用内置工具,别靠感觉
很多人凭“好像变快了”判断优化是否有效,但 VSCode 启动耗时受磁盘 IO、Node.js 初始化、插件依赖链等多层影响,主观判断误差极大。
- 启动时加
--prof-startup参数(Windows:命令行运行code --prof-startup;macOS/Linux:终端执行code --prof-startup),会生成cpu-profile-*.json文件,用 Chrome 打开chrome://tracing导入分析,精准定位哪个插件卡在require或activate - 更轻量的方式:启动后立即运行命令
Developer: Startup Performance,它会列出各阶段耗时、插件激活时间、延迟加载项——重点看Extension Activation下的长尾项 - 别信第三方“VSCode 加速插件”,它们多数只是帮你批量禁用,还可能偷偷改
settings.json引发冲突
某些插件天生慢,禁用前先查替代方案
不是所有慢插件都该禁。有些功能强但启动重(如 GitLens、Remote - SSH),直接禁用会导致核心体验崩坏。这时优先看它是否提供懒加载开关:
-
GitLens:在设置里搜gitlens.advanced.performance,开启enableOptimizations并关掉enableFileHistoryInExplorer可降 30%+ 激活时间 -
IntelliSense for CSS/SCSS:如果不用 CSS-in-JS,禁用css-language-features子模块(在插件设置页展开高级选项) -
Python插件:关掉python.defaultInterpreterPath自动探测,手动指定解释器路径,避免每次启动扫环境
真正难处理的是那些没提供配置项、又必须用的插件——它们的慢不是你能调的,只能接受或换方案。这点容易被教程绕开,但现实里就是如此。











