Prettier 是一个自动格式化代码的工具。
安装
npm i -D prettier
配置
// .prettierrc.json
{}
定义 .prettierignore
告诉 prettier 哪些文件不用管:
# .prettierignore
# Ignore artifacts:
build
coverage
使用
npx prettier --write .
- 会格式化所有文件(改写)
- 也可以指定要格式化的文件路径:
prettier --write "app/**/*.test.js"
prettier --check .
- 只会检查文件格式有没有符合要求,并不会改写文件
编辑器
当然,命令行的使用方式并不常用,我们更多是让编辑器帮我们自动格式化。
VSCode 可以安装 Prettier - Code formatter
插件。
注意:记得在项目本地安装 prettier。
ESlint
如果项目同时也使用 ESlint 的话,需要安装 eslint-config-prettier,然后在 eslint 配置中加上 extends: ['prettier']
。它会关掉 ESlint 中不需要的或者跟 prettier 有冲突的规则。
- prettier 是用来规范代码风格的,比如缩进多少、加不加分号之类的。
- eslint 更多是用来规范代码质量的,比如能不能有声明了但是不用的变量,能不能定义隐式全局变量这类规则。
虽然项目中是安装了 prettier,但不能保证每个人都能主动运行命令或者是配置编辑器。
所以,我们还是需要工具来自动检查和格式化。
这里 已经介绍过 husky 是干什么的了。
// package.json
{
"husky": {
"hooks": {
"pre-commit": "prettier --write . && git add -A ."
}
}
}
- 执行
prettier --write .
格式化所有代码 - 执行
git add
把所有修改的文件加入暂存区,一起提交
不过 prettier --write .
每次都会格式化所有文件,但其实我们只需要检查有修改的文件就好了。
lint-staged 就是用来解决这个问题的。
安装
npm i -D lint-staged
配置
// package.json
{
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*": "prettier --write"
}
}
原理
简单地说,lint-staged 就是把改动文件的路径加到了 prettier --write
命令后面。
同时它还把修改文件暂存了,我们也不需要 git add -A .
了。