关于commitlint提交不支持中文的探讨

来源:2-13 lint-staged 自动修复格式错误

Fiora0

2022-01-20

图片描述
我跟到这里发现,他的提交检测解析流程其实是:
git cz生成.git/COMMIT_EDITMSG文件,里面有本次提交的commit内容:
图片描述
之后会调用如图一所示的函数来解析成如下图所示的结构:
图片描述
这里如果是Feature(/):初始化项目这样的文本,那他就能被正确解析,如下所示:
图片描述
但是我跟到这里就发现,我不知道sync这个函数他在哪被覆盖了,所以,此处有几点解决方案:

  1. 重写个解析函数
  2. 找到覆盖的函数,修改他
  3. 放弃中文
    但是考虑到团队中英语水平参差不齐,再加上只是内部提交,所以中文还是有必要的,因此还是想解决这个问题。
    请老师指教

更新:
打印了一下后面那个opts,发现他的Header使用正则来解析的…那理论上来说,配置那个正则就可以解决问题…
正则内容:^(\w*)(?:((.)))?!?: (.)$
修改如下:
图片描述
打印结果如下:
图片描述
尝试提交结果如下:
图片描述
可以看到提交了两次都是没问题的…(为什么两次呢,因为第一次提交的时候不知道为什么单双引号没修正…)
错误提交截图:
图片描述
图片描述
至于为什么就一项没填却出来两项,我猜是正则没匹配到,他应该不是返回子串而是整个返回的…

不过我这里有个问题,正则中的?!?是啥意思啊,查不到呢,希望老师能解惑

写回答

1回答

Sunday

2022-01-21

首先得给你点赞了 👍👍

至于正则的话,你可以通过这个网站照一下:https://regexper.com/#


//img.mukewang.com/szimg/61ea599709f7f84d25761072.jpg

1
1
Fiora0
2022/01/24 23:20分更新 今日,在整理项目时,发现这个东西不好使了。因为本人有个习惯,在项目初期,任何配置出了点问题,就会重置整个项目。于是,就发现了这个问题。 经过细致的研究,我发现是这个配置不知道为何没有生效,依旧使用的是默认配置。 此时,我是使用`npm install --save-dev @commitlint/config-conventional@12.1.4 @commitlint/cli@12.1.4`安装的包依赖 在百思不得其解之后,遂决定直接把默认配置改了。 位置如下: node_modules\conventional-changelog-angular\parser-opts.js 在再次的测试之后,我发现,上文原本的配置拿掉也会报错?! 不管为何,建议两个都加上,不然只加某一个要排问题怪麻烦的。当然你也可以使用英文。 此修改有利有弊:
利:简单粗暴,万事大吉。
弊:修改麻烦
2022-01-24
共1条回复

基于Vue3新标准,打造后台综合解决方案

基于Vue3重写Vue-element-admin,打造后台前端综合解决方案

1941 学习 · 1687 问题

查看课程