vue代码提交规范(commitizen/commitlint/husky)

第一步:安装commitizen

使用commitizen提交时,会提示你在commit时填写所有必需的提交字段,无需再等待git commit 钩子运行就可以拒绝你的commit。

  1. 全局安装commitizen

    npm install commitizen -g
    
  2. 如果命令行直接输入cz没有出现如下内容的话,需要再运行下面的命令
    在这里插入图片描述

    // npm使用如下命令
    commitizen init cz-conventional-changelog --save-dev --save-exact
    // yarn使用如下命令
    commitizen init cz-conventional-changelog --yarn --dev --exact
    
  3. 这个时候,就在命令行使用 git cz 或 git-cz 或 cz 来提交代码了。

  4. 如果想在本项目下使用npm commit提交代码,需要再package.json中添加如下配置

    "scripts": {
        "commit": "cz"
     }
    

注意:npm 6及以上版本

第二步:安装commitlint

安装commitizen后,使用git commit仍旧可以进行不规范的提交。而commitlint结合husky可以在提交不规范内容时会导致失败,并提示错误

  1. 安装commitlint
    npm install -g @commitlint/cli @commitlint/config-conventional
    
  2. 生成配置文件。@commitlint/config-conventional是共享的commitlint配置,也可以使用其他的或者自定义的配置,我这里使用的是@commitlint/config-conventional。
    使用cmd执行命令时,生成的commitlint.config.js文件内容是字符串,把前后的双引号去掉就可以了
    echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js
    
    生成的commitlint.config.js文件内容如下:
    module.exports = {extends: ['@commitlint/config-conventional']}
    

第三步:安装Husky

Husky 支持所有 Git 钩子,可以在合适的钩子中运行测试、格式化代码、验证commit信息是否符合规范

  1. 安装Husky

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

    此命令将在项目根目录下生成一个.husky的文件夹,并生成一个pre-commit的文件(示例挂钩),内容是“npm test”,意思是在提交之前自动执行"npm test"命令,可以修改成自己想要执行的命令,多个命令之间使用 && 分隔。
    pre-commit文件内容如下

    #!/bin/sh
    . "$(dirname "$0")/_/husky.sh"
    
    npm test && npm run lint
    
  2. 添加commit-msg钩子,验证git commit的message是否符合commitlint的规范(即commitlint.config.js)

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

注意:git 2.9及以上版本

第四步:测试一下

至此,配置结束,使用“ git commit -m ‘foo: test’ ”测试一下,如果不能提交成功,那就配置成功了。

若有写的不对的地方,欢迎指出哦~