husky + eslint + lint-staged + commitlint

128 阅读1分钟

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工具执行校验 > 输出校验结果