Prettier
- Code Formatter
- Written in JavaScript
Editor Integration
Usage
bash
npm i -D prettierbash
prettier --write '**/*.ts'
prettier --check '**/*.ts'Configuration File
- A
"prettier"key in yourpackage.json, orpackage.yamlfile. - A
.prettierrcfile written in JSON or YAML. - A
.prettierrc.json,.prettierrc.yml,.prettierrc.yaml, or.prettierrc.json5file. - A
.prettierrc.js,prettier.config.js,.prettierrc.ts, orprettier.config.tsfile that exports an object usingexport defaultormodule.exports(depends on thetypevalue in yourpackage.json). - A
.prettierrc.mjs,prettier.config.mjs,.prettierrc.mts, orprettier.config.mtsfile that exports an object usingexport default. - A
.prettierrc.cjs,prettier.config.cjs,.prettierrc.cts, orprettier.config.ctsfile that exports an object usingmodule.exports. - A
.prettierrc.tomlfile.
.prettierrc
text
semi: false
singleQuote: true
printWidth: 80
trailingComma: 'none'
arrowParens: 'avoid'.prettierrc.json
json
{
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": false,
"singleQuote": true,
"trailingComma": "none",
"bracketSpacing": false,
"arrowParens": "avoid",
"parser": "typescript"
}Ignoring Files: .prettierignore
text
pnpm-lock.yaml
# prettier doesn't respect newlines between chained methods
# https://github.com/prettier/prettier/issues/7884
**/*.spec.js
**/*.spec.ts
**/dist
# https://github.com/prettier/prettier/issues/5246
**/*.html
# Lock files
package-lock.json
pnpm-lock.yaml
yarn.lockIntegrating with Linters
eslint-config-prettier
作用是:关闭 ESLint 中与 Prettier 冲突或重复的格式化规则。
例如 ESLint 配置中开启了:
json
{
rules: {
indent: ['error', 2],
quotes: ['error', 'single'],
semi: ['error', 'always']
}
}而 Prettier 的配置又要求另一套格式,两边就可能互相“打架”:
Prettier 格式化 → ESLint 报错
ESLint 修复 → Prettier 又改回去eslint-config-prettier 会关闭这类 ESLint 格式规则,让职责变成:
ESLint → 检查代码质量和潜在错误
Prettier → 负责代码格式它不会运行 Prettier,也不会格式化代码,只是关闭冲突规则。
.eslintrc
json
{
"extends": [
"eslint:recommended",
"prettier"
]
}之所以放最后,是为了覆盖前面配置中可能存在的格式化规则。
eslint-plugin-prettier
作用是:把 Prettier 当成一条 ESLint 规则来运行。
它提供了:
prettier/prettier规则。代码不符合 Prettier 格式时,会以 ESLint 错误的形式显示:
error Replace `··` with `····` prettier/prettier然后可以统一执行:
bash
eslint . --fix同时修复 ESLint 问题和 Prettier 格式问题。
示例:
js
import prettierPlugin from 'eslint-plugin-prettier'
export default [
{
plugins: {
prettier: prettierPlugin,
},
rules: {
'prettier/prettier': 'error',
},
},
]eslint-config-prettier
↓
关闭冲突规则
eslint-plugin-prettier
↓
把 Prettier 格式问题报告为 ESLint 错误