VSCode启动卡顿主因是扩展抢资源、文件监视器被node_modules拖垮、语言服务无差别扫描——禁用高耗时扩展、精准配置files.watcherExclude、限制TypeScript索引可将冷启动从8秒压至2秒内。

VSCode打开卡顿,90%不是电脑太旧,而是扩展在启动时抢资源、文件监视器被node_modules拖垮、或语言服务无差别扫描整个工作区——关掉几个默认启用的“智能”功能,冷启动时间能从 8 秒压到 2 秒内。
禁用高启动耗时扩展,先看谁在阻塞 Activating…
VSCode 启动慢,核心表现是界面卡在“Activating Extensions”不动。这不是假死,是某个扩展正在同步读取磁盘、解析依赖或发起网络请求。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并运行Developer: Show Running Extensions - 重点关注“启动耗时”列:超过
200ms的扩展优先禁用,比如GitLens、ESLint、Prettier、Remote - SSH(即使没连) - 右键禁用,**不要卸载**;重启 VSCode 后再逐个启用验证,确认是否恢复流畅
- 特别注意
Activation Events含*或onStartupFinished的扩展——它们一开就全量加载,毫无商量余地
精准配置 files.watcherExclude,别让 node_modules 拖垮监听器
files.watcherExclude 是性能拐点配置,它在文件系统层就过滤掉不需要响应变更的路径,比 search.exclude 更早生效、更省资源。
- 必须写在工作区根目录的
.vscode/settings.json中(不是用户 settings.json),否则对当前项目无效 - 规则必须用双星号:
"**/node_modules/**": true,写成"node_modules/**"或绝对路径反而会触发无效遍历,更卡 - 推荐组合(覆盖常见场景):
"files.watcherExclude": { "**/node_modules/**": true, "**/.git/**": true, "**/dist/**": true, "**/build/**": true, "**/__pycache__/**": true, "**/venv/**": true, "**/logs/**": true, "**/*.log": true } - 改完后必须关闭并重新打开该工作区,设置才生效
关掉 TypeScript 全局索引,避免 tsserver 在后台狂扫项目
哪怕你没打开一个 .ts 文件,TypeScript 语言服务(tsserver)仍可能因默认配置持续扫描整个工作区,尤其在含 node_modules 的前端项目里,内存飙升、CPU 占满是常态。
- 在工作区
.vscode/settings.json中加入:"typescript.preferences.suggestAutoImports": false, "typescript.preferences.includePackageJsonAutoImports": "auto", "typescript.preferences.autoImportFileExcludePatterns": ["**/node_modules/**"]
- 若项目不依赖 TS 类型检查,直接设
"typescript.preferences.disableSuggestions": true - 避免全局开启
"typescript.preferences.enableAutoImports": true—— 它会让tsserver预加载所有模块定义,启动延迟翻倍
用 --disable-extensions 快速验证,别猜,要实锤
所有优化建议都基于现象推断,但真正定位瓶颈,最可靠的方式是隔离变量。命令行启动是最干净的诊断路径。
- 完全退出 VSCode(包括托盘进程),在终端执行:
code --disable-extensions --disable-gpu - 观察冷启动时间和编辑响应——如果明显变快,说明问题 100% 出在扩展或 GPU 渲染上
- 接着只加回一个扩展测试:
code --disable-gpu --extension-id=eamodio.gitlens,逐步锁定元凶 - 注意:
--disable-extensions不影响已安装扩展本身,只是本次启动不加载,安全无副作用
最容易被忽略的是:files.watcherExclude 和 typescript.* 配置必须放在工作区级 .vscode/settings.json,用户级设置对大型项目几乎无效;另外,禁用扩展后不重启 VSCode,等于白禁。



















