Prettier
Prettier 是一个代码格式修正工具。
Prettier 官方文档中是这样介绍自己的:Prettier is an opinionated code formatter
opinionated 的字面意思是固执己见的,它的反义词的则是 unopinionated 虚怀若谷的。在许多工具库、框架中都会介绍自己是 opinionated 还是 unopinionated。
opinionated 的思路是,我已经帮你把一切事情都做好了,你只需要直接使用就行。
unopinionated 的思路则是,我给你提供了许多工具、零件,它们各有优劣,你需要按照自己的需求自行组装。
这也意味着,Prettier 提供的代码风格是最优的,开发者不需要做太多自定义的内容。
快速上手
在项目中安装 Prettier:
npm install --save-dev prettier规则配置
在项目根目录下创建 .prettierrc文件,编写 json 格式配置。
printWidth
指定一行代码的最大长度,默认80。
tabWidth
执行 tab 键的空格数,默认为2。
semi
是否在语句尾部添加分号,默认 true。
singleQuote
字符串是否使用单引号,默认 false。
jsxSingleQuote
jsx语法中的字符串是否使用单引号,默认 false。
arrowParens
当箭头函数只有一个参数时,是否使用括号,默认 "always"。
选项:
"always":总是使用括号包裹参数,如(x) => x"avoid":忽略括号,如x => x
trailingComma
在对象或数组最后一项的尾部添加逗号,默认 "all"。
默认值在 v3.0.0 中将 "es5" 改为了 "all"。
选项:
"all":尽可能的使用逗号"es5":只在 es5 的对象或数组中添加"none":不使用逗号
bracketSpacing
是否在对象的大括号内输入空格,默认 true。
选项:
true:{ foo: bar }false:{foo: bar}
bracketSameLine
是否将 HTML 标签的结束符 >放在最后一行的末尾,默认 true。
选项:
true:
<button
className="prettier-class"
id="prettier-id"
onClick={this.handleClick}>
Click Here
</button>false:
<button
className="prettier-class"
id="prettier-id"
onClick={this.handleClick}
>
Click Here
</button>忽略文件
在根目录下创建.prettierignore文件,类似.gitignore。
# 忽略所有的 .min.js 文件
*.min.js
# 忽略整个 build 目录
/build/
# 忽略 node_modules 目录
node_modules/
# 忽略特定文件
my-special-file.jsCLI
--write(or -w)
表示格式化当前目录下所有文件:
npx prettier --write .--check(or -c)
检查所有文件是否已经按照 Prettier 规则格式化:
prettier --check .如果所有文件都已格式化,则会输出:
Checking formatting...
All matched files use Prettier code style!如果有文件还没格式化,则会输出:
Checking formatting...
[warn] src/fileA.js
[warn] src/fileB.js
[warn] Code style issues found in 2 files. Run Prettier to fix.--find-config-path and --config
指定配置文件的路径,正常情况下会在当前目录中找:
prettier --write . --config path/to/.prettierrc--no-config
不读取任何配置文件,使用默认配置。
--ignore-path
指定忽略文件的路径,正常情况下会在当前目录中找:
prettier --write . --ignore-path path/to/.prettierignore