# Prettier格式化
官方文档
之前看了官方文档,在vscode全局配置文件setting.json中修改使不同语言使用不同格式化插件
"[html]": {
"editor.defaultFormatter": "HookyQR.beautify"
},
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
2
3
4
5
6
这样虽然解决了问题,但是很麻烦
# 1. 单个项目配置
我的prettierrc配置 (opens new window)
prettier官方给出了针对不同项目配置prettier的方法:
在项目根目录建立.prettierrc文件
{
"semi": false,
"overrides": [
{
"files": "*.test.js",
"options": {
"semi": true
}
},
{
"files": ["*.html", "legacy/**/*.js"],
"options": {
"tabWidth": 4
}
},
{
"files": ["*.css"],
"options": {
"tabWidth": 2
}
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
从上面可以看出,.prettierrc文件对不同格式的文件自定义了不同的tabWidth值,而tabWidth就是缩进的空格数,这样做可以方便地配置不同格式下prettier的选项,但是对我来说还不够,因为每建一个项目就要建一个这个文件(我有时候会忘记).于是我想弄成全局配置.
# 2. 全局配置
官方文档在扩展设置一栏中给了一个prettier.configPath
prettier.configPath 提供Prettier的配置文件的自定义路径。
注意,如果设置了该值,将始终使用该值,并且本地配置文件将被忽略。全局默认值的一个更好的选择是将~/.prettierrc文件放在主目录中。
在setting.json中配置如下:
//指定全局全局配置文件
"prettier.configPath": "***\\.prettierrc",
2
.prettierrc就是上面写的配置文件,只要在setting.json中指定配置文件,就会应用到全局
需要注意的是,如果设置了这个选项,那你项目目录的.prettierrc文件就会失效.
# prettier设置详解
prettier给出了如下设置选项
prettier.arrowParens //在单独的箭头函数周围加上() 默认always
prettier.bracketSpacing //在对象{}之间加上空格
prettier.endOfLine //换行,LF(unix)还是CRLF(Windows)
prettier.htmlWhitespaceSensitivity
prettier.insertPragma
prettier.jsxBracketSameLine //在jsx中把'>' 是否单独放一行 //已弃用
prettier.bracketSameLine // 代替"jsxBracketSameLine"
prettier.jsxSingleQuote //jsx中使用单引号
prettier.printWidth
prettier.proseWrap
prettier.quoteProps
prettier.requirePragma // 单文件控制是否使用prettier格式化
prettier.semi //行末分号
prettier.singleQuote //使用单引号而不是双引号
prettier.tabWidth //tab的宽度
prettier.trailingComma //尾随逗号 <es5|none|all>
prettier.useTabs //使用制表符代替空格缩进
prettier.vueIndentScriptAndStyle //是否缩进Vue文件中的代码<script>和<style>标记
prettier.embeddedLanguageFormatting
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# prettier推荐配置
https://gist.github.com/fncheng/ff998ff899cdae09798fbe1afdc4c8a5
# requirePragma
在文件头添加
/**
* @prettier
*/
或者
/**
* @format
*/
来控制 文件是否被prettier格式化
如果未添加文件头,则该文件不会被格式化
2
3
4
5
6
7
8
9
10
# 小程序wxml格式化
微信开发者工具setting.json添加如下代码
"html.format.wrapLineLength": 80,
"wxml.format.wrapLineLength": 80,
"[wxml]": {
"editor.defaultFormatter": "wechat.miniprogram.wxml-language-features"
}
2
3
4
5
# EditorConfig配置
https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties
root = true
[*]
# 字符集
charset = utf-8
# 缩进风格,类似于useTabs
indent_style = space
# 缩进大小
indent_size = 2
end_of_line = lf
max_line_length = 80
# 是否删除行尾的空格
trim_trailing_whitespace = true
# 是否在文件的最后插入一个空行
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
indent_style = sapce 等同于 prettier.useTabs=false
个人用配置
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
tab_width = 2
end_of_line = lf
max_line_length = 80
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
2
3
4
5
6
7
8
9
10
11
12
13