Husky
封装git hooks,在执行git操作时,执行对应的sh命令(常用的是npm script)。
原理是执行husky install的时候,会修改./git/config 文件,设置hooksPath = .husky,并生成.husky目录,即将git钩子配置指定到.husky目录(默认是./git/hooks目录,是一个隐藏文件夹)。
为了让每一位开发成员都能执行husky install初始化husky,需要添加npm script命令 "prepare": "husky install”。这是npm 的一个钩子,会在执行npm install的时候调用。
lint-stage
对commit的内容执行校验,相当于对开发者提交的内容做校验,避免校验所有文件。
采用以下格式配置,可以对不同类型的文件执行不同的校验或其他操作
{
"*.{js,vue,jsx}": [
"eslint --fix --quiet",
"git add"
]
}
commitlint
对commit的message做校验,规范化git commit动作。一般是使用Angular的规范@commitlint/config-angular
。
eslint
对js的校验工具和规范
-
校验js写法是否符合规范
-
格式化js,使其符合规范
工作顺序:
开发人员执行git commit > husky 执行对应hook > hook调用lint-stage 命令校验提交文件 & 调用commitlint校验message > eslint或其他lint工具执行校验 > 输出校验结果