什么是 Prettier?
Prettier 是一款固执己见的代码格式化工具,支持以下语言和技术:
- JavaScript(包括实验性特性)
- https://facebook.github.io/jsx/
- https://angular.dev/
- https://vuejs.org/
- https://flow.org/
- https://www.typescriptlang.org/
- CSS, https://lesscss.org/ 和 https://sass-lang.com
- https://en.wikipedia.org/wiki/HTML
- https://handlebarsjs.com/
- https://json.org/
- https://graphql.org/
- https://commonmark.org/,包括 https://github.github.com/gfm/ 和 https://mdxjs.com/
- https://yaml.org/
它会移除所有原始样式#脚注,并确保所有输出的代码保持一致的风格。(参阅这篇https://jlongster.com/A-Prettier-Formatter)
Prettier 接收您的代码,并根据行长度限制重新编排输出格式。例如:
// 单行参数无需换行
foo(arg1, arg2, arg3, arg4);
但当遇到超长参数时:
// 原始长参数写法(超出单行限制)
foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne());
Prettier 会自动将其格式化为:
// Prettier 自动进行多行格式化
foo(
reallyLongArg(),
omgSoManyParameters(),
IShouldRefactorThis(),
isThereSeriouslyAnotherOne(),
);
Prettier 通过解析代码生成 AST(抽象语法树),完全忽略原始格式#脚注,并按照自身规则重新输出。其核心机制是:
- 强制执行统一的代码风格(不影响AST结构的纯格式调整)
- 基于最大行长度限制自动换行
- 确保整个代码库的格式一致性
推荐学习资源:
脚注
实际上,部分原始样式在可行时会保留——参见rationale.md#空行和rationale.md#多行对象。
总结
Prettier 是一款强制统一代码风格的多语言格式化工具,其核心价值在于:
- 跨语言支持:覆盖主流前端技术栈及标记语言
- 智能化重构:通过AST解析彻底重置代码格式
- 行敏感处理:根据行长度自动优化代码布局
- 团队协作优化:消除格式争议,提升代码审查效率
- 渐进式适配:在严格规则下保留部分人性化格式(如空行) 作为现代化开发工作流的标准组件,Prettier 通过自动化格式管理显著提升代码可维护性。