Skip to content

pre-commit介绍

本页介绍使用 cz-gitsimple-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
},

内容由donymh提供,如有疑问,请微信联系lmingh6