前言
很多公司都有历史遗留项目和老代码,可能有的老代码是祖传了不知道多少代了,各种写法风格迥异,可能还没有做过代码规范,甚至一些基本的lint工具也没有。可以说,在这样的老项目上继续开发,无疑是成本极高的。如果不从现在开始就要求代码规范,在屎山上继续拉屎,最后的结果就是越来越烂,烂到无可救药。
大部分的做法都是,绕开祖传代码,然后重新新建一些文件或者目录进行继续迭代,然后在新写的代码中进行规范代码,或者使用lint工具进行代码检查。
可是,如果无法绕开呢?需要你继续在老代码上修改开发,尤其是在多人共同协作的时候,就需要保证新写的代码是符合规范的。
思路
所以现在的场景就是,老项目多人协作,继续开发迭代,保证新写的代码遵循规范,老代码不管。
如何只对修改的代码做规范检查,既不是像lint-staged那样的只能对变动的文件进行所有的检查,应该是要对变更的行或者新增的文件进行代码规范检查。
市面上没有现成的工具,ok,那我就自己造了一个。
简介
npm install -g review-edit-auto
cd yourProject
# default review in 1 week
review code
# you can specify time
review code --since 2022-03-02
# or
review code --since 2.weeks
直接安装就可以使用,默认是检查最近一周的代码变动,也可以自己设置时间,支持2种写法,一种是日期,一种是时间跨度。
然后就会输出检查的结果,默认是直接在终端输出结果:
你也可以导出结果为excel:
review code --exportExcel
我默认集合了一堆的比较流行的规范:
- eslint-config-airbnb
- eslint-config-google
- eslint-config-react-app
- eslint-config-standard
- eslint-config-standard-jsx
- eslint-plugin-flowtype
- eslint-plugin-import
- eslint-plugin-jsx-a11y
- eslint-plugin-node
- eslint-plugin-promise
- eslint-plugin-react
- eslint-plugin-react-hooks
- eslint-plugin-security
- eslint-plugin-sonarjs
不过你也可以使用自己项目中的eslint配置文件:
# will find your eslint config files in your project root dir
review code --useOutRc
只花了一个星期开发,用在自己的项目中还挺舒服的,尤其是检查最近一段时间多个同事的代码提交情况。还有许多不足和缺陷,欢迎吐槽。