缠丝猫 发表于 2024-9-26 17:30:15

Delete `␍`eslint(prettier/prettier)

一、问题:

本日下午配置eslint和prettier 时,频频报错:Delete `␍`eslint(prettier/prettier),vscode全页面爆红。
经过多次尝试与试验后,最终多种方式结合解决了这个问题。
二、报错原因是:

安装了prettier 插件指定了文件结尾的换行符与系统的不一样所导致的。
Windows在换行的时间,同时使用了回车符CR和换行符LF,即CRLF; 而项目堆栈中默认是Linux环境下提交的代码,文件默认是以LF结尾的,这也是工程化的需要。https://i-blog.csdnimg.cn/blog_migrate/b3bff44424c58002e37e58b2aa74404c.png
我们的 Prettier 插件默认 LF,所以从堆栈中拉取下来的代码会由于换行符的不同导致全屏爆红。
三、解决办法

1、通过IDE一键切换

在vscode文件的底部配置,将LF直接改为CRLF,但是这个方法只针对单个文件,全部文件都需要一个一个手动修改,比较贫苦。
https://i-blog.csdnimg.cn/blog_migrate/658d00d82bf26171b352799132cf0170.png
2、在vscode设置中,在搜索栏中搜索prettier,找到End Of Line 这个选项设置为 auto

https://i-blog.csdnimg.cn/blog_migrate/a75547780079ee38bef9a2af32d63ef4.png
3、配置.prettierrc文件,

在文件对象中添加下面的配置即可,然后重启vscode
"endOfLine": "auto"
https://i-blog.csdnimg.cn/blog_migrate/25247e7ff982fc25709c97a77674fa47.png

4、Crtl+S生存文件

按Crtl+S生存当前报错文件,eslint错误消失,不知道是什么原理,可以试试
 
5、修改git全局配置(最佳方案)

   这个问题是由于Windows在换行的时间,同时使用了回车符CR和换行符LF,即CRLF; 而项目堆栈中默认是Linux环境下提交的代码,文件默认是以LF结尾的,因此,文本文件在不同系统下创建和使用时就会出现不兼容的问题,当我用windows电脑git clone代码的时间,若我的autocrlf(在windows下安装git,该选项默以为true)为true,那么文件每行会被主动转成以CRLF结尾,若对文件不做任何修改,pre-commit执行eslint的时间就会提示你删除CR。
针对这个问题,可以对git全局配置做处置惩罚,使用下面这个命令,之后的堆栈拉取就不会出现类似问题,执行git命令:
git config --global core.autocrlf false
这个方法主要是针对git的配置,如果想要当前项目不爆红,重新拉取一次堆栈代码即可,git全局配置之后,你需要重新拉代替码。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Delete `␍`eslint(prettier/prettier)