Prettier 配置
项目根目录新增.prettierrc
文件 需要使用module.export
导出对象
printWidth
每行显示最多显示多少个字符换行
- 默认值:
80
- 类型:
number
tabWidth
指定每个缩进级别的空格数
- 默认值:
2
- 类型:
number
useTabs
使用 Tabs
替代空格缩进, useTabs
为 true 会忽略 tabWidth
- 默认值:
false
- 类型:
boolean
semi
在语句末尾打印分号。
- 默认值:
true
- 类型:
boolean
parser
指定使用哪种解析器进行格式化。
prettier
会自动从输入文件路径推断解析器,可以不必更改这个设置
- 默认值:
none
- 类型:
string
singleQuote
用单引号代替双引号
- 默认值:
false
- 类型:
boolean
quoteProps
对象里的 key 是否用引号包裹
- 默认值:
as-needed
有效选项
as-needed
仅在需要的时候增加引号consistent
如果一个属性值需要引号 则所有属性包裹引号preserve
在对象属性中注意引号的输入使用
jsxSingleQuote
在 JSX 使用单引号取代双引号
- 默认值:
false
- 类型:
boolean
trailingComma
在多行逗号分隔的语法结构中,尽可能打印末尾逗号
- 默认值:
false
有效选项
es5
在 ES5 中有效末尾逗号(对象、数组等)。TypeScript 的类型参数中没有末尾的逗号none
没有末尾的逗号all
尽可能以逗号结尾
bracketSpacing
打印对象字面量中括号之间的空格。
- 默认值:true
有效选项
true
- Example:{ foo: bar }
false
- Example:{foo: bar}
bracketSameLine
将多行 HTML (HTML, JSX, Vue, Angular)元素的>放在最后一行,而不是单独放在下一行(这不适用于自闭和元素)。
- 默认值:true
有效选项:
-
true
Example<button
className="prettier-class"
id="prettier-id"
onClick={this.handleClick}>
Click Here
</button> -
false
Example<button
className="prettier-class"
id="prettier-id"
onClick={this.handleClick}
>
Click Here
</button>
arrowParens
在一个单独的箭头函数的周围包含括号
- 默认值:
always
有效选项:
always
- 始终包含括号 :(x) => x
avoid
- 尽可能省略括号 :x => x
requirePragma
在文件顶部添加注释才会被Prettier格式化 这在逐渐将大型、未格式化的代码库过渡到 Prettier 时非常有用。
-
默认值:false
/**
@prettier
*/或者
/**
@format
*/
insertPragma
Prettier 可以在文件顶部插入一个特殊的@format
标记 表示该文件可以被Prettier格式化
和requirePragma一起配合使用效果很好
如果在文件的顶部已经有 @format
标记 那么这个选项将会为它添加一个换行符
- 默认值:false
proseWrap
是否需要折行
- 默认值:
preserve
有效选项:
always
- 当文字超出printWidth
的时候换行never
- 不换行preserve
- 按照文件原样换行
htmlWhitespaceSensitivity
指定 HTML、Vue、Angular 和 Handlebars 的全局空白敏感度
- 默认值:
css
有效选项:
css
- 遵守 CSSdisplay
属性的默认值。对于 Handlebars ,同样严格对待。strict
- 所有标签周围的空白(或缺少空白)被认为是重要的。ignore
- 所有标签周围的空格(或缺少空格)被认为是无关紧要的。
endOfLine
换行结尾的风格
- 默认值:
lf
有效选项:
lf
- 仅换行(\n)
,在 Linux 和 macOS 以及 git repos 中很常见crlf
- 回车 + 换行字符(\r\n)
,在 Windows 上很常见cr
- 仅回车符(\r)
,很少使用auto
-维护现有的行结尾
overrides
对某些扩展文件,文件夹和特殊的文件 拥有不用的配置项
{
"semi": false,
"overrides": [
{
"files": "*.test.js",
"options": {
"semi": true
}
},
{
"files": ["*.html", "legacy/**/*.js"],
"options": {
"tabWidth": 4
}
}
]
}