husck4.0以上版本如何配置我们的提交校验和提交信息校验

husck4.0 以上版本如何配置我们的提交校验和提交信息校验

目的实现

husck4.0 以上版本如何配置我们的提交校验和提交信息校验,包括:

  • 提交信息校验
  • 提交校验

分析步骤实现

  1. 首先我们需要处理代码的格式化有一个完整的 eslint 规则,(默认大家的项目中都有)
  2. 我们配置我们的项目中格式化代码的脚本 npm run lint
    pageage.json中,我们加入:
  "scripts": {
    "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
  },

我们安装4.0以上的husk可以直接使用npm install --save-dev husky lint-staged

package.json中加入:

"husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "src/**/*.scss": [
    "prettier --write",
    "git add"
    ],
    "src/**/*.{ts,tsx}": [
        "prettier --write",
     "git add"
     ]
  }

最后我们要去husk下面添加我们的hook钩子文件
pre-commit

 npm run lint

commit-msg

// 我们通过正则进行匹配即可

const chalk = require('chalk');
/* 读取我们的git hook中的变量获取我们的提交信息 */
const msg = require('fs').readFileSync(process.env.HUSKY_GIT_PARAMS);
/* 通过这个正则进行匹配我们的规则 https://zhuanlan.zhihu.com/p/447139270 解释 */
const commitRE = /^(revert: )?(Merge|(feat|fix|docs|style|refactor|workflow|ci|types)(\(.+\))?:(\s)?(.{1,50})?(\s)?to(\s)?#).{1,50}/;
/* 如下正则是我们不需要进行提交信息校验的直接通过即可 */
const ignore = /^(chore|perf|test)(\(.+\))?: .{1,50}/;
/* 如果失败则进行错误提示 */
if (!commitRE.test(msg) && !ignore.test(msg)) {
  console.error('error')
  process.exit(1);
}

posted @ 2024-03-18 16:48  郭杰前端开发  阅读(7)  评论(0编辑  收藏  举报
## 希望内容对你有帮助,如果有错误请联系我 q: 1911509826,感谢支持