pre-commit介绍
本页介绍使用 cz-git
和 simple-git-hooks
实现规范提交信息和提交前执行代码检查。cz-git
用于规范Git的提交信息,simple-git-hooks
用于管理 Git Hooks,实现提交前执行代码检查。
背景
使用该工具的前提是已经配置好了eslint、stylelint、prettier等脚本。 package.json scripts中必须有以下配置:
json
"scripts": {
"lint": "pnpm -r run lint",
"lint:fix": "pnpm -r run lint:fix",
"stylelint": "pnpm -r run stylelint",
"stylelint:fix": "pnpm -r run stylelint:fix",
"postinstall": "simple-git-hooks", // 必须有此脚本,有此脚本之后,npm instal的时候,会自动生成.husky文件
"preinstall": "npx only-allow pnpm"
}
安装依赖
bash
pnpm add simple-git-hooks cz-git --dev
npm install simple-git-hooks cz-git --save-dev
配置cz-git
在package.json中添加以下配置
json
"config": {
"commitizen": {
"path": "node_modules/cz-git"
}
},
配置lint-staged
在package.json中添加以下配置
json
"lint-staged": {
"*.{vue,js,jsx,ts,tsx}": [
"pnpm run lint",
"prettier --write"
],
"*.{vue,css,scss}": [
"pnpm run stylelint",
"prettier --write"
]
}
配置simple-git-hooks
在package.json中添加以下配置
json
"simple-git-hooks": {
"pre-commit": "pnpm lint-staged",
"preserveUnused": true
},