VSCode代码自动整理与错误检查依赖ESLint和Prettier精准分工:ESLint专管逻辑错误与风险检测(需配置文件及eslint.enable开启),Prettier专管格式统一(须配合.editorconfig防跨编辑器不一致),二者须隔离配置避免冲突,其他插件仅作补位。

VSCode 里代码自动整理和错误检查不是靠“装得全”实现的,而是靠 ESLint 和 Prettier 这两个插件精准分工、彼此隔离——一个管“对不对”,一个管“好不好看”,其他插件只是补位。
ESLint 负责报错和逻辑检查,不是格式化工具
很多人装了 ESLint 插件却看不到错误提示,常见原因是没配规则或没启用检查。它不负责缩进、空格、引号这些样式问题,只检测未定义变量、Promise 未处理、console.log 残留、安全漏洞等真实风险。
- 必须在项目根目录有配置文件(如
.eslintrc.cjs或.eslintrc.js),光装插件不生效 - VSCode 设置中要开启
eslint.enable,并设eslint.run为onSave或onType - 务必加
"eslint.format.enable": false,否则它会抢Prettier的活,导致保存时来回改格式 - 想保存时自动修简单问题(比如补分号、删多余逗号),加这行:
"editor.codeActionsOnSave": { "source.fixAll.eslint": true }
Prettier 管格式,但单独用容易跨编辑器失效
Prettier 默认按自己规则格式化,可一旦团队里有人用 WebStorm、Vim 或 GitHub Codespaces,tabWidth、end_of_line 就可能不一致——这不是 bug,是设计使然。
- 必须配合
EditorConfig for VS Code插件 + 项目根目录的.editorconfig文件,才能统一基础编辑行为 -
.editorconfig里写indent_size = 2,.prettierrc里也得设"tabWidth": 2,否则保存时会“打架” - 推荐禁用
editor.formatOnSave,改用codeActionsOnSave统一调度:"source.fixAll.prettier": true - 不建议把
Prettier设为默认 formatter 后还手动按Shift+Alt+F,容易绕过codeActionsOnSave的执行顺序
Path Intellisense 和 Auto Rename Tag 解决的是“手抖型错误”
这两类问题不会被 ESLint 或 Prettier 抓到,但每天都在发生:路径输错一个字母、改了 <div> 忘改 </div>。
-
Path Intellisense在import或require的引号里自动列出文件,支持Tab补全;但默认会扫node_modules,建议在设置里加path-intellisense.excludePath过滤掉 -
Auto Rename Tag对 Vue/React 自定义组件默认不生效,需手动开auto-rename-tag.enableForCustomTags - 它们都不依赖项目配置,装完即用,但也不处理自闭合标签(如
<img />)的拼写校验
GitLens 和 TODO Highlight 是“事后补救型”辅助
它们不预防错误,但在出问题后能快速定位根源:谁改的?什么时候改的?哪段代码长期没人碰?
-
GitLens的行级 blame 功能比命令行git blame直观得多,但大量文件同时打开时可能拖慢响应,建议在大仓中关闭gitlens.advanced.blame.ignoreWhitespace -
TODO Highlight会标出所有// TODO、// FIXME,但默认不识别自定义标记(如// HACK),需在设置里加todo-tree.tree.showScanModeButton: false避免干扰 - 这类插件属于“用了不觉得多,不用立刻难受”的类型,优先级低于 ESLint/Prettier 组合
真正卡住人的从来不是插件装得少,而是 .eslintrc 和 .prettierrc 里的参数冲突、codeActionsOnSave 和 formatOnSave 同时开启、或者 .editorconfig 被忽略——这些细节不调好,装十个插件也白搭。


















