首页/开发/代码质量与评审速查/Prettier 与 ESLint 的分工协议
规范与静态检查65 条

Prettier 与 ESLint 的分工协议

格式与语义分开:Prettier 管格式,ESLint 管逻辑与通用实践;用 eslint-config-prettier 关闭冲突的格式类规则,避免互相覆盖。

Prettier 与 ESLint 怎么分工

两者职责不同:Prettier 管格式,ESLint 管逻辑与通用实践。冲突集中在缩进、引号、分号这类格式规则上,解决办法是用 eslint-config-prettier 把冲突规则整体关掉,让格式只由一方负责。执行顺序上,通常先格式化再检查。

基本信息

推荐做法用 eslint-config-prettier 关闭冲突的格式规则
执行顺序先格式化,再跑 ESLint 检查
冲突焦点缩进、引号、分号、换行位置
备选方案把 Prettier 作为 ESLint 规则内嵌运行

典型使用场景

  • 新项目配置:一次装好两个工具,写清楚各自负责什么
  • 提交前自动修复:钩子里先格式化,再跑检查修复
  • CI 校验:两边都跑,但格式问题只在一处报错
  • 老项目整治:先关掉冲突规则,再逐步调整其它检查
  • 编辑器配置:保存时格式化,另存时检查,避免重复动作

内嵌运行的取舍

  • 优点:一条命令同时完成格式化与检查
  • 代价:每次检查都要调用 Prettier,耗时明显增加
  • 适合:中小仓库与提交钩子
  • 不适合:大型仓库的全量检查

安装与配置

安装与配置
npm i -D prettier eslint-config-prettier
# 把关闭冲突的那份配置放在末尾,覆盖前面的格式规则
# 冲突的 indent / quotes / semi 等规则由 Prettier 全权负责

规则归属

规则类别归属
缩进、引号、分号、换行Prettier
未使用变量、相等比较ESLint
导入顺序交给专门的排序工具
类名与函数命名ESLint 的命名规则
两边都管的规则把权限交给一方即可,否则自动修复会来回覆盖,提交记录里全是格式抖动。
在评审中的用法:格式类差异不该写成评审意见,直接请对方跑一遍格式化命令即可。
老仓库可以按目录分批启用格式化,避免某一次提交里出现成千上万行纯格式差异。
忘记关闭冲突规则:格式化与检查互相改坏,提交来回拉扯。

易错点

  • 忘关冲突规则:格式化与检查互相改坏,提交来回拉扯
  • 内嵌运行 Prettier 却用在全量检查上:耗时明显增加,大仓库应先评估开销
  • 编辑器与 CI 使用不同版本的格式化工具:同一文件被两种格式反复改写
  • 把格式问题提交成评审意见:本应由工具解决,讨论成本被白白浪费
  • 在评审里争论格式细节:没有规则依据的偏好讨论,消耗的时间远超实际收益

数据来源与参考

  • eslint-config-prettier 官方文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌