协作开发eslint必不可少,,一个几未使用eslint的老项目如何渐进式的逐步推进eslint规范化?
痛点
- 1,一下子全部改掉势必会有成千上万条的error信息, 短时间无法一下修改完成
- 2,可能会对线上代码有影响,无法一下子回归所有功能
解决思路
可以先保证每次commit的文件都是经过了eslint的校验的,至少我们是可以对每次的修改的文件有精力做review的,所以我们需要按照以下三个步骤:
- 1,保证每次提交代码前都能够进行代码检查
- 2,通过git的命令获取当前修改的文件列表
- 3,对指定文件进行eslint检查
实现代码
借助husky(文档)对代码进行预检
// package.json
{
"husky": {
"hooks": {
"pre-commit": "sh chech.sh",
}
}
}
检查即将commit的代码, 通过git diff找到改变的文件列表并进行eslint检查
check.sh
# get changed list
list=`git diff --name-only src`
if [[ $list ]]; then
echo "[change list]"
echo "$list"
eslint --ext .js,.vue $list
fi