安装指南
首先,在本地安装Prettier:
npm install --save-dev --save-exact prettier
# --save-dev:将Prettier保存为开发依赖项
# --save-exact:精确锁定安装版本号
yarn add --dev --exact prettier
# --dev:将Prettier保存为开发依赖项
# --exact:精确锁定安装版本号
pnpm add --save-dev --save-exact prettier
# --save-dev:将Prettier保存为开发依赖项
# --save-exact:精确锁定安装版本号
bun add --dev --exact prettier
# --dev:将Prettier保存为开发依赖项
# --exact:精确锁定安装版本号
接着,创建空配置文件让编辑器和其他工具识别您正在使用Prettier:
node --eval "fs.writeFileSync('.prettierrc','{}\n')"
# 创建空配置文件.prettierrc
# 兼容Windows/PowerShell/bash/zsh等环境
然后创建 ignore.md 文件,告知Prettier CLI和编辑器哪些文件不应格式化。示例:
node --eval "fs.writeFileSync('.prettierignore','# Ignore artifacts:\nbuild\ncoverage\n')"
# 创建忽略规则文件
# 默认忽略build和coverage目录
相关信息
如果存在.gitignore文件,Prettier会自动遵循其规则。您也可以基于.eslintignore创建.prettierignore。
[其他技巧]
若项目暂不需格式化HTML文件,添加*.html
到忽略规则。
现在格式化所有文件:
npx prettier . --write
# npx运行本地安装的Prettier
# --write:直接覆盖原文件格式化
yarn exec prettier . --write
# yarn exec运行本地安装的Prettier
pnpm exec prettier . --write
# pnpm exec运行本地安装的Prettier
bunx prettier . --write
# bunx运行本地安装的Prettier
相关信息
npx
是什么?它是npm内置工具,用于运行本地安装的包。后文将省略npx
前缀简化命令。
相关信息
如果忘记安装直接运行,npx
会临时下载最新版。由于Prettier每次更新都会调整格式化规则,强烈建议在package.json
中锁定版本!本地安装执行更快更安全。
相关信息
yarn exec
的作用是运行本地安装的Prettier。后文将省略该前缀简化命令。
相关信息
pnpm exec
的作用是运行本地安装的Prettier。后文将省略该前缀简化命令。
相关信息
bunx
的作用是运行本地安装的Prettier。后文将省略该前缀简化命令。
相关信息
如果忘记安装直接运行,bunx
会临时下载最新版,可能导致格式不一致问题。建议在package.json
中锁定版本!
prettier --write .
可全局格式化,但在大型项目中可能较慢。可指定目录(prettier --write app/
)或单个文件(prettier --write app/components/Button.js
)。也支持使用https://github.com/mrmlnc/fast-glob#pattern-syntax,例如:prettier --write "app/**/*.test.js"
格式化所有测试文件。
在CI环境中运行以下命令确保团队格式统一,避免协作冲突:
npx prettier . --check
# --check:仅检查文件是否已格式化(不修改源文件)
--check
与--write
功能相似但仅检查不修改,两者是运行Prettier的最常用方式。
编辑器配置
命令行格式化适合入门,但配合编辑器使用体验最佳——可通过快捷键或保存时自动格式化。当代码行过长时,一键自动换行;粘贴代码缩进混乱时,自动修复格式。
参考editors.md配置环境。若编辑器不支持,可改用watching-files.md运行Prettier。
相关信息
不要跳过本地安装!编辑器插件会调用本地Prettier版本,确保各项目版本一致(避免因版本差异导致意外格式变更)。
命令行运行仍是重要备选方案,也是CI环境的必要方案。
ESLint(与其他检查器)
若使用ESLint,请安装 https://github.com/prettier/eslint-config-prettier#installation 解决规则冲突。它会关闭所有与Prettier冲突的ESLint规则。Stylelint用户可使用 https://github.com/prettier/stylelint-config-prettier。
(了解格式化与检查的区别请参考comparison.md,深度配置参考integrating-with-linters.md,更多工具集成参考related-projects.md。)
Git钩子
除命令行、CI检查和编辑器集成外,还可将Prettier设置为Git预提交钩子(pre-commit hook),确保每次提交都自动格式化,无需等待CI检测。
例如配置提交前自动格式化:
- 安装https://github.com/typicode/husky和https://github.com/okonet/lint-staged:
npm install --save-dev husky lint-staged
npx husky init # 初始化husky
node --eval "fs.writeFileSync('.husky/pre-commit','npx lint-staged\n')" # 创建预提交钩子
yarn add --dev husky lint-staged
npx husky init
node --eval "fs.writeFileSync('.husky/pre-commit','yarn lint-staged\n')"
pnpm add --save-dev husky lint-staged
pnpm exec husky init
node --eval "fs.writeFileSync('.husky/pre-commit','pnpm exec lint-staged\n')"
bun add --dev husky lint-staged
bunx husky init
bun --eval "fs.writeFileSync('.husky/pre-commit','bunx lint-staged\n')"
相关信息
Yarn 2用户请参考 https://typicode.github.io/husky/#/?id=yarn-2
- 在
package.json
中添加配置:
{
"lint-staged": {
"**/*": "prettier --write --ignore-unknown"
}
}
# 对所有文件执行格式化
# --ignore-unknown:跳过未知类型文件
相关信息
若同时使用ESLint,请确保在Prettier前运行ESLint。
详见precommit.md。
总结
安装流程总结:
- 精确安装本地版本:锁定
package.json
中的Prettier版本,确保团队成员使用相同版本(即使补丁版本也可能导致格式差异) - 创建配置文件:添加
.prettierrc
告知编辑器使用Prettier - 设置忽略规则:创建
.prettierignore
指定无需格式化的文件/目录 - CI环境检查:运行
prettier --check .
确保格式统一 - 编辑器集成:最佳体验方案
- 解决规则冲突:使用https://github.com/prettier/eslint-config-prettier兼容ESLint
- 自动化提交:通过预提交钩子保证每次提交都格式化