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