其他
速查
- VSCode 插件:
“Prettier - Code formatter” - VSCode 格式化快捷键:
Opt+Shift+F/Alt+Shift+F
编辑器
编辑器集成
将 Prettier 集成到代码编辑器中,以便在编辑时自动运行格式化。如果编辑器不支持,可使用文件监视器(file watcher)运行 Prettier
确保使用正确的 Prettier 版本,避免全局安装导致版本不匹配
jsx
npm install --save-dev prettierVisual Studio Code
- 插件:
prettier-vscode - 安装: 通过扩展侧边栏搜索
“Prettier - Code formatter” - 额外功能: 安装 vscode-status-bar-format-toggle 可开关格式化
WebStorm
WebStorm 默认内置 Prettier 支持
手动格式化快捷键:
- macOS:
Opt+Shift+Cmd+P。 - Windows/Linux:
Alt+Shift+Ctrl+P。
自动格式化:
配置路径: Preferences / Settings | Languages & Frameworks | JavaScript | Prettier。
选项:
- On save: 保存时运行 Prettier(
Cmd+S/Ctrl+S)。 - On ‘Reformat Code’ action: 使用 Prettier 作为默认格式化工具(
Opt+Cmd+L/Ctrl+Alt+L)。
其他开发工具插件请参阅官方文档
配置文件监听
配置 Prettier 监视项目文件的变化,并在文件修改时自动运行格式化。
使用 onchange,一个轻量级的文件监视工具
直接运行
bash
npx onchange "**/*" -- npx prettier --write --ignore-unknown {{changed}}使用 npm 脚本
json
// package.json
{
"scripts": {
"prettier-watch": "onchange \"**/*\" -- prettier --write --ignore-unknown {{changed}}"
}
}运行
bash
npm run prettier-watch技术细节
Printer: Prettier 的核心组件,负责将抽象语法树(AST)转换为格式化代码字符串。
工作流程
- 输入: 接收一个 AST(抽象语法树)。
- 中间表示(IR): 将 AST 转换为中间表示(Intermediate Representation),一种抽象的输出结构。
- 输出: 打印器根据 IR 生成最终字符串。
IR
IR 是一组命令的抽象表示,描述代码的布局。在 Prettier Playground 中,通过侧边栏(“Show options”按钮)设置 parser 为 doc-explorer,可查看 IR
相关项目
ESLint 集成
eslint-config-prettier:关闭所有与 Prettier 无关或可能冲突的 ESLint 规则eslint-plugin-prettier:将 Prettier 作为 ESLint 规则运行,报告格式差异作为 ESLint 问题prettier-eslint:将 Prettier 输出传递给eslint --fix进行修复prettier-standard:结合 prettierx 和 prettier-eslint,使用 Standard 规则格式化代码
Stylelint 集成
stylelint-config-prettier:关闭与 Prettier 无关或冲突的 Stylelint 规则stylelint-prettier:将 Prettier 作为 Stylelint 规则运行,报告差异prettier-stylelint:将 Prettier 输出传递给stylelint --fix
分叉项目
prettierx:Prettier 的分叉版本,减少强制性规则,更加灵活
其他工具
parallel-prettier:并行格式化文件,加速大项目prettier_d:以服务器模式运行 Prettier,减少 Node.js 启动延迟pretty-quick:只格式化 Git 暂存区中的更改文件rollup-plugin-prettier:在 Rollup 构建中集成 Prettierjest-runner-prettier:将 Prettier 作为 Jest runner 运行prettier-chrome:浏览器扩展,在 Chrome 中运行 Prettierspotless:从 Gradle 或 Maven 运行 Prettiercsharpier:Prettier 的 C# 版本reviewdog-action-prettier:在 GitHub Actions 中运行 Prettier
企业版
- Tidelift 订阅: Prettier 可通过 Tidelift 订阅获得企业级支持,提供安全更新、许可验证、代码维护、包选择指导、路线图参与及云集成,减少风险并提升代码健康度。
- 目标: 为企业提供商业级开源软件管理,节省时间并支持依赖维护者。