H5项目git提交规范

113 阅读1分钟

提交时使用 githooks

husky + commitlint

husky

  • 安装
pnpm install husky
  • 配置

    1. 运行
    npm pkg set scripts.prepare="husky install"
    

    执行完上一步的命令之后可以在 package.json 文件的 scripts 配置项中看到如下代码, 当然代码也可以手动添加

    {
         "scripts": {
           "prepare": "husky install"
         }
    }
    
    1. 运行 pnpm prepare 执行 husky 安装

    2. 提交约定钩子 test (该步骤可暂时跳过,等到commitlint安装配置完成后 再执行)

       pnpm husky add .husky/commit-msg 'pnpm test'
    

    执行后,会看到在根目录的 .husky 文件夹下多了一个 commit-msg 文件,其内容如下:

      #!/usr/bin/env sh
      . "$(dirname -- "$0")/_/husky.sh"
    
      pnpm test
    

    这样每一次 git commit 都会执行一次 pnpm test

commitlint commitlint.js.org/#/

  • 安装

    pnpm install @commitlint/cli @commitlint/config-conventional
    
  • 配置

    根目录创建 commitlint.config.js文件,并添加以下内容

      module.exports = {
            extends: ["@commitlint/config-conventional"],
            // 以下是我们自定义的规则
            rules: {
                "type-enum": [
                    2,
                    "always",
                    [
                        "build", // 构建相关
                        "chore", // 辅助工具的变动
                        "ci", // 自动化构建
                        "docs", // 文档(documentation)
                        "bug", // 此项特别针对bug号,用于向测试反馈bug列表的bug修改情况
                        "feat", // 新功能(feature)
                        "fix", // 修补bug
                        "style", // 格式(不影响代码运行的变动)
                        "refactor", // 重构(即不是新增功能,也不是修改bug的代码变动)
                        "test", // 增加测试
                        "revert", // feat(pencil): add ‘graphiteWidth’ option (撤销之前的commit)
                        "types", // 定义规则
                    ],
                ],
            },
    };
    
    
  • 使用commitlint约定 ,在Husky中,修改一下 commit-msg 脚本,在每次 git commit 的时候执行 commitlint 校验

pnpm husky add .husky/commit-msg 'pnpm commitlint --edit $1'

image.png