vscode卡顿主因是eslint/prettier全局监听、tsserver索引过广及冗余插件;应排除node_modules、限制验证语言、关闭自动导入、显式配置include路径并卸载live server等非必要插件。

为什么装了 ESLint 和 Prettier 后 VSCode 开始卡顿?
不是插件本身有问题,而是它们默认在全项目范围监听 onSave 和 onType 事件,尤其当 node_modules 没被排除时,ESLint 会扫描上万文件,Prettier 会在每次键入时尝试解析未完成的语法树。
- 检查
settings.json是否已配置"files.watcherExclude",必须包含"**/node_modules/**"和"**/dist/**" - 禁用全局 ESLint 验证:设
"eslint.validate"仅限当前语言,例如["javascript", "typescript"],而非["*"] - Prettier 不要设
"editor.formatOnType": true——它会导致每敲一个字符都触发格式化,改用"editor.formatOnSave": true即可 - 若项目有
.eslintrc.js,确认没启用耗性能的规则如no-unused-vars的"all"模式,改用"local"
JavaScript Booster 真的能安全重构,还是只是“看起来很美”?
它底层调用的是 TypeScript 语言服务的 AST 转换 API,不是正则替换,所以能识别作用域、避免变量名冲突、跳过注释和字符串内内容。但它的安全边界很明确:只处理当前光标所在语句或代码块,不跨函数、不改 import/export 声明。
- 遇到
const→let转换失败?大概率是变量已被赋值多次,插件主动拒绝——这是保护机制,不是 bug - “Convert to arrow function” 对含
this或arguments的函数会直接禁用选项,不会强行转换 - 它不修改
package.json或引入新依赖,所有操作纯前端 AST 操作,关掉插件后代码状态完全不变 - 注意:对 Webpack/Vite 构建后的代码(如
dist/下)无效,它只响应源码文件且需有正确 tsconfig.json 或 jsconfig.json
如何让 JS IntelliSense 在大型项目里不卡死?
TypeScript 语言服务器(TSServer)是 VSCode 里最常拖慢 JS/TS 项目的模块,它默认尝试索引整个工作区,包括 node_modules/@types 中的声明文件。实测中,关闭自动类型获取比关插件更能立竿见影。
- 设
"typescript.suggest.autoImports": false—— 自动导入功能在 10k+ 文件项目中平均增加 800ms 响应延迟 - 加
"typescript.preferences.includePackageJsonAutoImports": "off",阻止它读取package.json解析依赖类型 - 用
"typescript.tsserver.log": "off"关闭日志,日志写入本身就会触发额外 I/O - 更激进但有效:在
jsconfig.json中显式指定"include",例如["src/**/*", "tests/**/*"],彻底排除node_modules、build等目录
哪些“JS 开发必备插件”其实该立刻卸载?
所谓“必备”,往往源于教程惯性而非实际需要。以下插件在真实中大型项目中,多数时候是性能负资产:
-
Live Server:本地预览完全可用npx serve -s dist替代,插件自带的 HTTP 服务会持续占用端口并监听文件变更 -
Bracket Pair Colorizer:VSCode 1.60+ 已内置括号高亮("editor.guides.bracketPairs": true),第三方版本反而增加渲染开销 -
Auto Rename Tag:现代框架(React/Vue)中 JSX/Template 标签重命名意义极小,且它监听全部文本变化,CPU 占用稳定高于 5% -
Code Spell Checker:对 JS/TS 文件几乎无用,拼写检查应限定在markdown、json、html等文本型语言
真正关键的不是“装什么”,而是“关什么”——打开 Ctrl+Shift+P → Developer: Show Running Extensions,按内存排序,前三位里没业务强相关的,就先停用再观察。











