什么是Git Hooks?
参考资料:官方文档
简单的讲,所谓Hook,一般就是在特定时期提供一个可介入自定义的脚本;
Husky
大多数前端程序员对编写shell脚本是不熟悉的,这个时候就有个神奇的工具Husky来帮助我们实现Git Hooks的使用需求;
npm install husky -D
// 旧版本
{
...,
"husky": {
"hooks": {
"pre-commit": "npm run test"
}
}
}
// 新版本
{
"scripts": {
"prepare": "husky install"
},
// 命令行执行 npx husky add .husky/pre-commit "npx lint-staged"
"lint-staged": {
"*.{js,jsx,vue,ts,tsx}": [
"npm run lint",
"git add"
]
}
}
Lint-staged
lint-staged 是一个在git暂存文件上运行linters的工具
如果我们想在husky执行了npm run test之后再去做格式化,或者将格式化之后的代码添加到暂存区,这个时候Husky就不够用了,这个时候又有个神奇的工具Lint-staged
来帮助我们实现该需求;
npm install lint-staged -d
{
...,
// 旧版本的husky需要在这里配置pre