1. Prettier 3 的配置文件与 ESLint 的边界(格式化与代码质量)
Prettier 3 的配置文件如何组织?它与 ESLint 在"格式化"与"代码质量"上的职责边界如何划分?
- Prettier 3 的配置来源(配置文件、CLI、编辑器)与优先级
- 格式化(格式)与代码质量(错误、反模式)的职责划分
- 双工具协作的配置组织与冲突消除
Prettier 3 的配置优先级为"package.json 的 prettier 字段 < .prettierrc 系列 < prettier.config.js 等 JS 配置 < CLI/编辑器选项",支持 JSON/YAML/JS/TOML 多种格式,3.0 起部分选项迁移(如默认配置的语义调整、废弃某些插件化选项),核心职责是"格式化"——把代码排版(引号、缩进、换行、尾逗号)统一为唯一风格,且不可配置的选项极少(opinionated),目的消除团队格式争议;ESLint 的核心职责是"代码质量"——语法错误、未使用变量、反模式、可维护性问题,附带少量 stylistic 规则(历史上)。
边界划分的最佳实践:Prettier 管"长得怎么样"(格式),ESLint 管"对不对、好不好"(质量);ESLint 中与排版相关的规则(indent、quotes、semi 等 stylistic 规则)应关闭,交给 Prettier,用 eslint-config-prettier 一键关闭冲突规则,避免两工具对同一代码给出冲突修复(互相覆盖);流程上是"先 Prettier 后 ESLint"(或 editor 保存时按此顺序),保证格式与质量分开审查;工程上把两类规则分开组织(prettier 配置独立文件 + eslint 配置中引用 eslint-config-prettier),让团队对"格式争议找 Prettier、质量问题找 ESLint"形成共识。
本题考察双工具的职责边界:格式 vs 质量是核心分界,冲突解决(eslint-config-prettier)是协作关键。回答应说明配置优先级、边界划分与执行顺序,体现对工具定位的准确理解。