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