至于为什么要在现有文件中插入/* eslint-disable */的原因不做过多解释,无非是因为项目起初各种原因没有接入eslint,后期又想要接入,但是又不想检测老文件,只想让以后的新代码文件满足eslint规则。需要的人自然懂哈~
我的项目是vue项目,需要在.js,.ts,.vue的文件中添加/ * eslint-disable * /,其中.ts,.js的文件在文件第一行添加/ * eslint-disable * /,.vue的文件在script中的第一行添加/ * eslint-disable * /
下面开始上脚本
#!/bin/sh
#自动向现有.js,.vue,.ts文件添加 eslint-disable
rootDir=${1:-.} #指定要修改的根目录 默认当前目录
echo 要修改的根目录为 $rootDir
findJS(){
for file in $*
do
if test -f $file
then
if test ${file:0-3} = '.ts'
then
echo $file
sed -i '' '1i\'$'\n/* eslint-disable */\n' $file #添加/* eslint-disable */
fi
if test ${file:0-3} = '.js'
then
echo $file
sed -i '' '1i\'$'\n/* eslint-disable */\n' $file #添加/* eslint-disable */
fi
if test ${file:0-4} = '.vue'
then
echo $file
sed -i '' "/<script/a\\
/* eslint-disable */\\
" $file #添加/* eslint-disable */
sed -i '' "/<\/script>/i \\
/* eslint-disable */ \\
" $file #添加/* eslint-disable */
fi
fi
if test -d $file
then
findJS $file/*
fi
done
}
findJS $rootDir/*
使用方式:
1.项目根目录新增文件shell.sh,copy脚本过去
2.执行命令 /bin/sh shell.sh src
利用脚本30s搞定了让eslint忽略现有文件的检查,如果是通过.eslintignore来忽略文件,因为src下文件夹众多,而且这些文件夹下以后还会新增文件,所以通过制定文件路径忽略检查的方式需要将路径指定的粒度够细才可以,而且今后如果想要修改老代码使其满足eslint规则,还需要再修改.eslinitignore文件中路径的指定,效率低下还易出错。