解决项目使用eslint+prettier,启动报错: error Delete `␍` prettier/prettier
项目运行时,偶尔会报错:
error Delete `␍` prettier/prettier
该错误通常与行尾换行符相关。
一、行尾换行符问题
通常是由于不同操作系统之间的换行符差异引起的。
- windows:在换行的时候同时使用了CR和LF换行符,即\r\n
- Mac和Linux:仅仅使用了换行符LF,即\n
在使用 Git 等版本控制工具时,可能会出现行尾换行符混合的情况,从而导致 Prettier 报错。
二、解决方案
-
单个文件解决:
选中报错的文件,然后点击vscode编辑器下面的CRLF,切换到LF(这种方法适用于报错文件比较少的情况)。 -
在*.eslintrc.js*中增加配置,忽略换行格式的检查
-
在控制台执行指令:
yarn run lint --fix
自动将CRLF转换成了LF。但是会有好多文件有修改记录。需要提交一下。
- 根据分析问题可知,这一切都是git导致的(git会自动将lf转为crlf)
好在git暴漏了这个配置项core.autocrlf,我们可以通过修改此属性,将全局autocrlf设置为false。
git config --global core.autocrlf false
其它
代码换行格式不同,不会影响项目的运行和编译,但是每次修改以后都会提交,这样容易造成上面的错误。
所以本地忽略换行符校验,git上不自动转换CRLF,是比较合适的解决方案。具体可根据自己需求选择。