最常拖慢 vscode 冷启动的是四个 ms-vscode. 开头的内置扩展:js-debug、vscode-typescript-next、references-view 和 test-explorer,它们默认启用、无法卸载且在启动时预热。

哪些内置扩展最常拖慢 VSCode 冷启动
VSCode 启动卡在“Activating Extensions”阶段,八成以上是几个 ms-vscode. 开头的内置扩展在后台预热——它们不显示在市场页,但默认启用、声明 onStartup 或通配符 * 激活事件,且无法卸载。
重点排查以下四个:
-
ms-vscode.js-debug:即使你从不调试 JS,它也会启动完整调试服务,冷启动必加载 -
ms-vscode.vscode-typescript-next:只要打开任何.js或.ts文件就激活,无tsconfig.json也照常加载 TS 语言服务 -
ms-vscode.references-view:随编辑器初始化,内存占用固定但极少被手动调用 -
ms-vscode.test-explorer:检测到package.json或jest.config.js等即自动激活,纯 Python/Markdown 项目中完全冗余
在命令面板运行 Extensions: Show Installed Extensions,搜索 @builtin 即可列出全部。禁用时务必选 Disable (Global),仅禁用 Workspace 无效。
怎么快速定位哪个扩展在拖后腿
别靠猜,用 VSCode 自带工具看真实耗时:
- 启动后立即按
Cmd+Shift+P(macOS)或Ctrl+Shift+P(Windows/Linux),执行Developer: Startup Performance - 报告里重点关注 “Extension Activation” 列 —— 耗时 >300ms 的扩展基本就是元凶
- 同时打开终端运行
code --status,观察Extensions区域中哪些显示activated且load time异常高 - 若想验证是否为扩展问题,直接终端运行
code --disable-extensions,干净启动后对比启动速度
注意:Developer: Show Running Extensions 只反映“当前正在跑什么”,但看不到启动阶段的阻塞点;真正卡顿往往发生在激活前的模块加载期,所以必须用 Startup Performance 报告。
禁用内置扩展后要注意什么
禁用不是万能解药,得看工作流依赖:
-
ms-vscode.vscode-typescript-next禁用后,.ts/.js文件将失去跳转、补全、语义高亮——前端或 Node 开发者不建议动它 -
ms-vscode.js-debug可安全禁用,调试时再手动启用(右键扩展 →Enable (Global)),不影响断点设置功能 -
ms-vscode.references-view和ms-vscode.test-explorer在非 TypeScript/测试驱动项目中,禁用后几乎零感知 - 禁用后必须完全退出 VSCode(
Cmd+Q/Ctrl+Q),再重启才生效;仅重载窗口不会清掉已加载的扩展主机进程
容易被忽略的一点:某些扩展(如 ESLint)虽非内置,但若配置了 "eslint.validate": ["javascript", "typescript", "html"],会强制拉起多个语言服务器,效果等同于多开一个 ms-vscode.vscode-typescript-next。
文件监视器(watcher)配置不当也会伪装成“插件慢”
很多用户看到“Activating Extensions”卡住,实际是 files.watcherExclude 没配好,导致 chokidar 在扫描 node_modules 时阻塞整个扩展主机进程。
- 在工作区根目录的
.vscode/settings.json中显式写入:"files.watcherExclude": { "**/node_modules/**": true, "**/dist/**": true, "**/.git/**": true } - 不要只依赖全局设置,VSCode 会优先合并工作区配置,而大项目下未排除
node_modules会导致 watcher 句柄数超限 - macOS 用户若用了 Dropbox/iCloud 同步代码目录,VSCode 和云盘客户端会争抢文件句柄,卡顿是必然结果——必须把项目移出同步文件夹
- Windows 上用 WSL2 开发时,切勿直接打开
\wsl$路径,应通过Remote - WSL插件在 WSL 内启动 server
真正影响启动速度的,往往是这几个配置项和一两个内置扩展的组合效应;单点优化可能收效甚微,但禁用 references-view + 配好 watcherExclude,冷启动提速 40% 很常见。











