原理是基于git hook pre-commit实现,在代码提交时自动格式化在暂存区中的代码。
-
安装npm依赖
npm i -D husky lint-staged pretty -
在package.json中添加配置
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,json,md}": [
"prettier --write",
"git add"
]
},
"prettier": {
"printWidth": 120
},
- husky会在代码提交前,调用pre-commit钩子,执行lint-staged,如果代码不符合prettier配置的规则,会进行格式化,然后再用eslint的规则进行检查,如果有不符合规则且无法自动修复的,就会停止此次提交。如果都通过了就会讲代码添加到stage,然后commit。