husck4.0 以上版本如何配置我们的提交校验和提交信息校验
目的实现
husck4.0 以上版本如何配置我们的提交校验和提交信息校验,包括:
- 提交信息校验
- 提交校验
分析步骤实现
- 首先我们需要处理代码的格式化有一个完整的 eslint 规则,(默认大家的项目中都有)
- 我们配置我们的项目中格式化代码的脚本
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);
}
标签:const,--,lint,校验,提交,husck4.0,我们
From: https://www.cnblogs.com/gjzsa/p/18080877