【Django REST】番外:关于修改commitlint使其支持中文Type的方案

762 阅读3分钟

「这是我参与2022首次更文挑战的第3天,活动详情查看:2022首次更文挑战

起因

在学习慕课网《基于Vue3最新标准,实现后台前端综合解决方案》第二章节时,我注意到,在cz-config.jscommitlint.config.js中定义的type无法支持中文,因为你一旦写了中文,他就会报没有填写的错误。

但是考虑到中文对于国人的易读性及团队中英语水平的参差不齐,所以我就决定跟一遍,看看他到底是哪里出的问题。

过程

没想到过程居然一波三折,但好在最后让我找到了!

首先,通过百度和官方git库及文档,但由于本人英文水平极差,找了一圈没啥收获,于是开始翻源码。

时间原因,具体过程日后再补

结果

根据上一章配置完后,他的git cz执行流程应该为:

git cz生成.git/COMMIT_EDITMSG文件,里面有本次提交的commit内容:

image.png

之后会调用如下图所示的函数来解析:

image.png

解析结果:

image.png

这里如果是Feature(/):初始化项目这样的文本,那他就能被正确解析,如下所示:

image.png

最后再根据这个解析结果来进行后续判断等一系列操作。

打印后面的opts变量,可以发现,他的结构中有headerPattern参数,根据名称可以知道是解析header用的。

于是,在我一顿猛如虎的操作后,我确定了就是这个!

我在此处打印了一下这个可疑的家伙:

image.png

果然:

image.png

这个值是可以配置的!

当然,打印之前你的commitlint.config.js文件内容应该如下:

image.png

之后把此文件修改为:

image.png

即可。

修改完后再次输出opts中那个结构可以发现:

image.png

尝试提交,结果如下:

image.png

可以看到提交了两次都是没问题的…(为什么两次呢,因为第一次提交的时候不知道为什么单双引号没修正…)

错误提交截图:

image.png image.png

因为目前不怎么用git,所以没有发现什么BUG,后续有什么bug出现我会及时更新在此文后。

本人于慕课网首发:关于commitlint提交不支持中文的探讨
后整理成此文。

更新

2022/01/24 23:20分更新

今日,在整理项目(重写前文)时,发现这个东西不好使了。因为本人有个习惯,在项目初期,任何配置出了点问题,就会重置整个项目。于是,就发现了这个问题。

经过细致的研究,我发现是这个配置不知道为何没有生效,依旧使用的是默认配置。

此时,我是使用npm install --save-dev @commitlint/config-conventional@12.1.4 @commitlint/cli@12.1.4安装的包依赖

在百思不得其解之后,遂决定直接把默认配置改了。

位置如下: image.png

在再次的测试之后,我发现,上文原本的配置拿掉也会报错?!

不管为何,建议两个都加上,不然只加某一个要排问题怪麻烦的。当然你也可以使用英文。

此修改有利有弊:
利:简单粗暴,万事大吉。
弊:修改麻烦
各位自己权衡。当然之前那法子能用最好。

转载注明出处。

0.gif