Skip to content
☆´∀`☆
On this page

husky

git hooks

install

npm install husky --save-dev

安装

安装这个之前需关联 git 仓库

手动安装

在 package 中添加 script,然后运行一次

npm set-script prepare "husky install"
npm run prepare

官网推荐安装

npx husky-init && npm install       # npm
npx husky-init && yarn              # Yarn 1
yarn dlx husky-init --yarn2 && yarn # Yarn 2+
pnpm dlx husky-init && pnpm install # pnpm

钩子 - pre-commit

当使用 git commit 的时候 npm test 会被运行

npx husky add .husky/pre-commit "npm test"
git add .husky/pre-commit

那么我想绕过这个验证怎么办?使用 Git 的 --no-verify 配置

git commit -m "yolo!" --no-verify

搭配 lint-staged 使用

在 commit 前 lint 所有的代码有点浪费时间,此插件可针对仅在暂存区的代码进行 lint。

pnpm install lint-staged --D
npx husky set .husky/pre-commit "npm run lint:lint-staged"

钩子 - commit-msg

校验 git commit 信息是否符合规范,保证团队的一致性

搭配 commitlint 插件

  • @commitlint/cli 校验 git commit 信息是否符合规范,保证团队的一致性
  • @commitlint/config-conventional Anglar 的提交规范
npm i -D @commitlint/cli @commitlint/config-conventional @commitlint/cz-commitlint commitizen

添加钩子

npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

commitlint.config.js 配置文件

js

在 CI/Docker/Prod 中禁用钩子

禁用 prepare 脚本

npm set-script prepare ""
npm ci --omit=dev