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

posted @   丁少华  阅读(2461)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示