原理是基于git hook pre-commit实现,在代码提交时自动格式化在暂存区中的代码。

  1. 安装npm依赖
    npm i -D husky lint-staged pretty

  2. 在package.json中添加配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,json,md}": [
"prettier --write",
"git add"
]
},
"prettier": {
"printWidth": 120
},
  1. husky会在代码提交前,调用pre-commit钩子,执行lint-staged,如果代码不符合prettier配置的规则,会进行格式化,然后再用eslint的规则进行检查,如果有不符合规则且无法自动修复的,就会停止此次提交。如果都通过了就会讲代码添加到stage,然后commit。