error Delete `␍`eslintprettier/prettier
问题描述
今天提交代码的时候,控制台报的错误就有点吓人
分析问题
由于历史原因,windows下和linux(mac)下的文本文件的换行符不一致。
当我用windows电脑git操作代码的时候,如clone、提交,git会默认会将文件每行会被自动转成以CRLF结尾,这就导致了eslint的规则错误。
解决方案1
一个个文件手动把CRLF换成LF。😢文件太多,换不过来,太鸡肋
解决方案2
yarn run lint --fix
自动将CRLF转换成了LF。
比上面省事,eslint错误消失。😢但暂存区多了n个文件改动记录,对比Working tree也看不出任何不同
解决方案3
因为prettier默认规定换行格式为LF,所以才会报错。
在prettier.config.js
配置中,添加忽略换行格式的检查。
endOfLine: 'auto'
解决方案4
根据分析问题的愿意可知,这一切都是git导致的(git会自动将lf转为crlf)
好在git暴漏了这个配置项core.autocrlf
,我们可以通过修改此属性,将全局autocrlf设置为false。
git config --global core.autocrlf false
推荐操作
因为换行格式不同,不会影响项目的运行和编译,但是却会每次提交,都导致大量的代码冲突。
所以我们要做的是,本地忽略换行格式的要求,而提交的时候,统一拦截,修复成lf格式。
即方案3
+方案4