eslint负责代码质量检查,prettier专注格式化,二者缺一不可;单独使用会遗漏逻辑错误或风格不一致问题。必须安装eslint-config-prettier并在extends中最后引入以禁用冲突规则,同时vscode需配置"editor.formatonsave": true和"editor.defaultformatter": "esbenp.prettier-vscode"确保协同生效。

ESLint + Prettier 是 JS 代码质量落地的最小可行组合,缺一不可;单装 ESLint 或只用 Prettier 都会漏掉关键问题。
为什么 ESLint 单独运行会报 Cannot find module 'eslint-config-prettier'
这是常见错误,本质是 ESLint 规则和 Prettier 格式化逻辑冲突,但没显式禁用冲突项。Prettier 负责格式(比如要不要分号、缩进几格),ESLint 默认规则里也有同类检查(如 semi、indent),两者打架就会报错或反复格式化。
- 必须安装
eslint-config-prettier并在extends中显式引入,它会关闭所有与 Prettier 冲突的 ESLint 规则 - 顺序很重要:
prettier要放在extends数组最后,否则会被前面的规则覆盖 - 别只装插件不配规则——VSCode 的 ESLint 插件默认只启用基础校验,没读取项目配置文件时几乎不报错
保存时自动格式化失效,但手动 Shift+Alt+F 可用
这说明 Prettier 已安装并能运行,但触发时机没对上。VSCode 的“保存时格式化”依赖两个开关同时打开:
Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。
-
"editor.formatOnSave": true—— 全局或工作区设置里必须开启 -
"editor.defaultFormatter": "esbenp.prettier-vscode"—— 必须指定 Prettier 为 JS/TS 文件的默认 formatter,不能留空或设成其他 - 如果项目有
.prettierrc,确保它和.eslintrc.js在同一级目录,否则 VSCode 可能读不到
JavaScript Booster 的重构建议总不出现灯泡图标
这个插件依赖语法树分析,对代码结构敏感。以下情况会导致灯泡不亮:
- 当前文件没被识别为 JavaScript:检查右下角语言模式是否为
JavaScript(不是Plain Text或TypeScript) - 光标没停在可重构节点上:比如想转
var→const,光标必须在var关键字或变量名上,不能在字符串或注释里 - 代码存在语法错误:插件会在解析失败时静默退出,先跑一遍 ESLint 看有没有
Parse error类提示 - 它不支持嵌套太深的表达式:比如
a && b ? c : d || e这种复合条件,Replace with ?:选项大概率不会出现
团队协作时,.eslintrc.js 和 .prettierrc 哪些字段最易引发分歧
真正引发 PR 冲突的往往不是大规则,而是几个具体数值型配置:
-
quotes:单引号 vs 双引号——建议统一用['error', 'single'],避免模板字符串里还要转义 -
trailingComma:设为'es5'而非'all',否则 JSX 属性末尾加逗号会触发 React 严格模式警告 -
max-len:设太高(如 120)会让长 URL 或正则一行写完,可读性差;设太低(如 80)又频繁换行。推荐100,兼顾屏幕宽度与可读性 -
semi:关掉分号(['error', 'never'])后,ASI 自动分号插入规则容易在换行处出错,新手踩坑率高,建议保留['error', 'always']
这些值一旦定下,就该进 Git 提交记录,而不是靠口头约定或个人设置同步。










