添加依赖

# 添加依赖

npm install -D husky

# 配置钩子

# 老版本

// 老版本直接在package.json中配置即可
{
  "husky": {
    "hooks": {
      // 在commit之前先执行npm run test命令
      "pre-commit": "npm run test",
      // 校验commit时添加的备注信息是否符合我们要求的规范
      "commit-msg": "commitlint -e $HUSKY_GIT_PARAMS"
    }
  }
}

# 新版本

  1. 在 packgae.json 中添加 prepare 脚本

prepare 脚本会在 npm install(不带参数)之后自动执行。

也就是说当我们执行 npm install 安装完项目依赖后会执行 husky install 命令,该命令会创建.husky/目录并指定该目录为 git hooks 所在的目录。

{
  "scripts": {
    "prepare": "husky install"
  }
}
  1. 添加 pre-commit
npx husky add .husky/pre-commit "npm run test"

运行完该命令后我们会看到.husky/目录下新增了一个名为 pre-commit 的 shell 脚本。

也就是说在在执行 git commit 命令时会先执行 pre-commit 这个脚本。pre-commit 脚本内容如下:

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npm run  test
  1. 添加 commit-msg
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

#--no-install 参数表示强制npx使用项目中node_modules目录中的commitlint包
npx --no-install commitlint --edit $1