vscode插件需精简而非堆砌,关键在加载时机与职责划分;eslint应设为ontype触发并排除构建目录,prettier统一格式化且禁用eslint自动修复,rest client需关闭响应缓存,vue插件须关闭inlinetemplate以防内存暴涨。

VSCode 插件不是越多越好,而是越少越稳——尤其对前端项目,一个失控的插件就能让 onDidOpenTextDocument 响应延迟 300ms,导致 TypeScript 文件首次打开卡顿、智能提示滞后、甚至格式化冲突。实测中,ESLint + Prettier + Vue Language Features 这三者若未协调好加载时机和规则边界,会直接拖慢编辑器启动 1.8 秒(12MB 项目)。关键不在“装不装”,而在“怎么装、谁先谁后、谁管什么”。
为什么 ESLint 插件一开就卡?
ESLint 插件默认启用全项目扫描(包括 node_modules 和构建产物),且每次文件保存都触发完整 lint —— 这不是问题,是设计使然;但如果你没关掉 eslint.packageManager 自动探测,或没在 .eslintignore 里排除 dist/、build/、coverage/,它就会反复解析千行打包代码。
- 必须设置
"eslint.enable": true,但同时加"eslint.run": "onType"(而非onSave)减少阻塞 - 在项目根目录加
.eslintignore,明确写入:dist/**、build/**、public/**、**/*.min.js - 禁用
eslint.experimental.useFlatConfig(除非你真用上了 ESLint v9 的 flat config),老式.eslintrc.js更稳定 - 避免同时启用
dbaeumer.vscode-eslint和roadhump.vscode-eslint-autofix——后者已废弃,且与前者监听同一事件,造成重复执行
Prettier 和 ESLint 冲突时,谁该让步?
冲突根源不是“谁更强”,而是“谁更早介入格式化流程”。Prettier 负责风格统一,ESLint 负责逻辑检查;但当两者都设为 formatOnSave,VSCode 会按插件注册顺序调用 formatter,而顺序不可控。
前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。
- 只保留
esbenp.prettier-vscode作为editor.defaultFormatter,关闭 ESLint 的自动修复(即不设"eslint.format.enable": true) - 用
eslint-config-prettier关闭所有与格式相关的 ESLint 规则(如indent、quotes、semi),防止视觉误报 - 如需保存时同时 lint + format,改用脚本驱动:
"editor.codeActionsOnSave": { "source.fixAll.eslint": true },它走的是 ESLint 的修复通道,不会和 Prettier 抢 formatter 控制权 - 注意:Vue SFC 中
<style></style>和<script></script>块可能被不同插件接管,务必在settings.json中显式指定语言绑定:"prettier.documentSelectors": ["javascript", "typescript", "vue"]
REST Client 看似轻量,为何在大型项目里变慢?
redhat.vscode-yaml 和 humao.rest-client 都依赖文本解析器做语法高亮和请求预检,但 REST Client 在打开含 50+ 个 ### 分隔块的 .http 文件时,会逐块构建 AST 并缓存响应历史——这本身不耗 CPU,但内存占用会随请求次数线性增长,尤其当你没清理过 ~/.vscode/extensions/humao.rest-client-*/cache/ 目录。
- 禁用自动保存响应历史:
"rest-client.saveResultToWorkspace": false - 把测试用的
.http文件单独放在__tests__/api/目录下,避免和源码混在一起被其他插件(如搜索、索引)扫描 - 不要在
.http文件里写超长 JSON body(>2KB),改用@body.json引用外部文件,减少编辑器解析压力 - 如果项目里有大量环境变量定义(
environments),确保.vscode/settings.json中的rest-client.environmentVariables是扁平结构,嵌套过深会导致变量替换时递归计算
真正影响性能的从来不是插件图标多漂亮、功能多炫酷,而是它监听了哪些 VSCode 生命周期事件、是否做了不必要的文件监听、有没有主动释放资源。比如 Vue Language Features 插件在 Vue 3.4+ 项目中若未关闭 "vue.experimental.inlineTemplate": false,就会对每个 <template></template> 块启动独立 TS 服务实例——这点很容易被忽略,但单文件组件多时,内存直接涨 400MB。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










