Delete `␍`eslint(prettier/prettier)报错的终极解决方案

文章讲述了在Windows环境下,由于git的autocrlf配置导致的与Linux系统换行符不一致问题,从而引发eslint错误。解决方案包括:使用VSCode切换行尾序列、运行`yarnrunlint--fix`、修改.prettierrc配置以及设置git全局配置禁用autocrlf。最后推荐通过修改git配置来一劳永逸地解决问题。
摘要由CSDN通过智能技术生成

1.背景

在进行代码仓库clone打开后,vscode报错全屏的 Delete eslint(prettier/prettier)问题

原因是因为:
罪魁祸首是git的一个配置属性:

由于历史原因,windows下和linux下的文本文件的换行符不一致。

* Windows在换行的时候,同时使用了回车符CR(carriage-return character)和换行符LF(linefeed character) 

*MacLinux系统,仅仅使用了换行符LF 

* 老版本的Mac系统使用的是回车符CR 

因此,文本文件在不同系统下创建和使用时就会出现不兼容的问题。
我的项目仓库中默认是Linux环境下提交的代码,文件默认是以LF结尾的(工程化需要,统一标准)。
当我用windows电脑git clone代码的时候,若我的autocrlf(在windows下安装git,该选项默认为true)为true,那么文件每行会被自动转成以CRLF结尾,若对文件不做任何修改,pre-commit执行eslint的时候就会提示你删除CR。
现在可以理解ctrl+s和yarn run lint --fix方案为何可以修复eslint错误了吧,因为Git自动将CRLF转换成了LF。

在这里插入图片描述

2. 解决方案:

1.vscode直接转化

一般IDE下方状态栏会提供“切换行尾序列”的工具,如上图,一键切换到正确的行尾序列即可。
好处:直接转化当前页面的报错
坏处:只能修复当前文件,不能解决整个项目报错的问题。
在这里插入图片描述

2. yarn run lint --fix

比上面省事,eslint错误消失,但暂存区多了n个文件改动记录,对比Working tree也没发现任何不同。

缺点:需要commit所有文件,多余。

3. 配置.prettierrc文件

在项目根目录下的.prettierrc文件中写入即可。其实就是不让prettier检测文件每行结束的格式.

"endOfLine": "auto" 

缺点:不能兼容跨平台开发,从前端工程化上讲没有做到尽善尽美。

4. 设置git配置(最佳实践)

好处:一劳永逸,但是需要重新clone一下代码

cmd命令行输入以下代码

git config --global core.autocrlf false
  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ifHappyEveryDay@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值