快速确认插件拖慢启动:执行code --disable-extensions秒开即证实问题在扩展;再运行Developer: Show Running Extensions查Activation Time超1000ms或状态异常的插件,并结合code --status验证耗时,同时配置files.watcherExclude排除干扰目录。

怎么快速确认是插件拖慢启动
别等加载动画转完。终端执行 code --disable-extensions,立刻启动 VSCode。如果秒开、语法高亮和跳转都正常,问题 100% 出在扩展上。
这时补一个动作:启动后马上按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS),输入并运行 Developer: Show Running Extensions,重点看两列:
-
Activation Time (ms)超过 1000 的插件,基本等于在编辑器刚露头时就抢走控制权 - 状态长期显示
Activating或Activation failed的,说明它卡住了,但还在后台占着线程
顺手执行 code --status,输出里 Extensions 区域会标出每个插件的真实激活耗时,比 GUI 更准。
哪些插件最常在启动时“卡死”
它们不显眼,但默认声明 onStartup 或通配符 * 激活,一启动就干重活:
-
ms-vscode.js-debug:即使你从不调试 JS,也会初始化完整调试服务 -
ms-vscode.vscode-typescript-next:无tsconfig.json也硬拉 TS 服务器,吃内存且不可跳过 -
gitlens:默认开启全仓库历史扫描和符号缓存,gitlens.advanced.caching.enabled不关,内存涨几百 MB -
ms-python.python:尤其旧版本,即使只打开.txt文件也会尝试初始化 Python 环境 -
Remote - SSH:连接远端失败时 UI 线程直接挂起,表现为“卡住几秒没报错”
这些插件的 package.json 里通常含 "activationEvents": ["*"] 或 "onStartupFinished",不是装得多,而是某个插件抢在启动时就干重活。
禁用前先调配置,很多“重”是默认太莽
卸载不是第一选择。很多插件卡顿源于默认开启了全量监听或实时索引:
-
GitLens:设"gitlens.advanced.caching.enabled": false,内存直降 -
TypeScript:改"typescript.preferences.includePackageJsonAutoImports": "auto",TSServer 启动快一倍 -
ESLint:把"eslint.run": "onSave",避免敲字时实时分析拖慢响应
所有调整必须写入项目级 .vscode/settings.json 或用户 settings.json,改完需关闭并重新打开工作区才生效。
files.watcherExclude 不配,插件再轻也白搭
VSCode 的文件监听器(chokidar)一旦被 node_modules、.git 这类目录拖住,所有插件的触发逻辑都会变慢——因为它们都依赖这些事件。
必须加进 settings.json:
{
"files.watcherExclude": {
"**/.git/**": true,
"**/node_modules/**": true,
"**/dist/**": true,
"**/build/**": true
}
}这个配置不光影响搜索和跳转,更直接影响插件是否能及时收到文件变化通知。漏掉它,哪怕只启用了 3 个插件,照样可能卡在 “Activating Extensions” 阶段。


















