老项目引入Eslint

101 阅读1分钟

老的前端项目引入Eslint,由于存量代码文件不能立即fix调整。此方案通过commit钩子配置仅校验改动的文件,实现改动才校验,不改动不校验的目标。

1. 将存量文件放入 .eslintignore

    find src -name '*.js' -o -name '*.vue' >> .eslintignore

2. 通过commit钩子取消改动文件的ignore,并校验

package.json中增加钩子触发配置,依赖npm包yorkie,Vue项目自带

{
    "name": "your-project",
    "gitHooks": {
        "pre-commit": "bash ./pre-commit.sh"
    }
}

3. 在项目根目录增加第2步中配置调用的处理脚本

file_eslint_ignore=.eslintignore

# 找出当前准备提交的文件
files=$(git status -s | grep -E '\.js$|\.vue$' | cut -d ' ' -f3)
[ -z "$files" ] && exit 0

# 从 .eslintignore 中删除改动的文件
for check_file in $files; do
    match_line=$(grep -n "^${check_file}$" $file_eslint_ignore | cut -d ':' -f 1)
    if [ -n "$match_line" ]; then
        sed -i '' "$match_line d" $file_eslint_ignore
    fi
done

# 对新增和修改文件进行检查
npx eslint $files && git add $file_eslint_ignore