xDocxDoc
AI
前端
后端
iOS
Android
Flutter
AI
前端
后端
iOS
Android
Flutter
  • 关于

    • Prettier
    • 构建并强制执行
    • Prettier vs. Linters
    • 选项设计原理
    • 设计理念
  • 使用

    • 安装指南
    • 忽略代码
    • precommit
    • 插件
    • CLI
    • API
    • Browser
    • CI
  • 配置 Prettier

    • options
    • Configuration File
    • 共享配置
  • Editors

    • 编辑器集成
    • WebStorm 设置
    • Vim 配置指南
    • 监视文件变更
  • Misc

    • 技术实现细节
    • 生态
    • 企业解决方案

什么是 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(抽象语法树),完全忽略原始格式#脚注,并按照自身规则重新输出。其核心机制是:

  1. 强制执行统一的代码风格(不影响AST结构的纯格式调整)
  2. 基于最大行长度限制自动换行
  3. 确保整个代码库的格式一致性

推荐学习资源:

  • https://www.youtube.com/watch?v=hkfBvpEfWdA

  • https://www.youtube.com/watch?v=0Q4kUNx85_4

脚注

实际上,部分原始样式在可行时会保留——参见rationale.md#空行和rationale.md#多行对象。


总结

Prettier 是一款强制统一代码风格的多语言格式化工具,其核心价值在于:

  1. 跨语言支持:覆盖主流前端技术栈及标记语言
  2. 智能化重构:通过AST解析彻底重置代码格式
  3. 行敏感处理:根据行长度自动优化代码布局
  4. 团队协作优化:消除格式争议,提升代码审查效率
  5. 渐进式适配:在严格规则下保留部分人性化格式(如空行) 作为现代化开发工作流的标准组件,Prettier 通过自动化格式管理显著提升代码可维护性。
最后更新: 2025/8/26 10:07