前期回顾
防止迷路 三个文件

看了之前自定义规则一、二的文章,一、讲了自定义规则的创建以及使用,二、结合vscode进行测试。那么这次我结合之前的经历,准备写一个稍微复杂一点的规则:
文件中注释行数不超过总代码行数的5%
1:当然5%是动态可以自己配置的
2:代码解释型注释、产品需求变更产生的注释 不要求计算在内 规则名为comments-less-then npm包在这里,这次主要目标不是放在如何写规则上,这些只要对照官方文档(这里我要狠狠地吐槽下, 对照官方文档写规则真是😭太不详细了)和eslint源码就行(此时的最新版本是v7.0.0-alpha.0),而是把精力放在出现的问题上。
使用规则
在之前majun-dt
工程目录下重新安装eslint-plugin-mjlint
修改.eslintrc.js

出现的问题
写好规则在正式使用majun-dt
中没有问题。但是在跑测试时eslint-plugin-mjlint
工程目录下运行npm run test
测试我们的规则是否通过,我们可以通过规则(二)中结合vscode进行测试
会有以下的错误
comments-less-then规则中提示代码错误的message

可以在lib/rules/comments-less-then.js
中设置断点F5



以同样的方法我们来调试下eslint源码(v7.0.0-alpha.0)中max-lines-per-function规则(如何传配置百分比就是看的这里)


好了到此就是我当时解决查看的debugger
解决问题
最后重点来了,我在调试的过程中发现两次的调试代码不一样以及结合下图,发现可能是eslint版本的原因,于是去查看了版本
eslint
源码中版本是v7.0.0-alpha.0
majun-dt
有于是自己npm装的eslint好想也是比较新的6.8.0
eslint-plugin-mjlint
由于使用官方推荐的工具生成的工程目录 eslint版本是~3.9.1
,索性我就把版本更新为6.8.0
这也就解释了为什么写好的插件在正式使用没问题,而在自己跑测试中却出现了问题,原因是在正式使用majun-dt
中eslint为较新版,而在跑测试时eslint-plugin-mjlint
中eslint为~3.9.1

还原问题eslint-plugin-mjlint@0.0.9
真的想好好的吐槽一波😫😫😫`,本来文档就写的不详细,结果官方推荐生成规则工程目录的工具也出现这样的问题,白白让我花费时间调试,奔溃。。。 好了,同学你不要嫌我啰嗦,我只是记录下我的历程。同学,我就到这了,剩下的,你来吧。