解决VSCode报Delete `␍`eslint(prettier/prettier)问题

·  阅读 845

今天拉代码进行开发,一运行,就看到了这近千的警告,蒙了,赶紧找解决办法,下面给大家介绍介绍吧。

image.png

问题产生原因

网上查了一下,问题产生的原因是windows下和linux下的文本文件的换行符不一致。

windows:CRLF(表示句尾使用回车换行两个字符,即windows下的"\r\n"换行)

Linux:LF(表示句尾,只使用换行,即末尾是"\n")

mac:CR(表示只使用回车,即末尾是"\r")

解决办法

方案一:手动把CRLF换成LF

image.png

方案二:yarn run lint --fix

缺点:eslint错误消失,但暂存区多了n个文件改动记录。

yarn run lint --fix
复制代码

我用的是yarn ,如果使用的是npm则是

npm run lint --fix
复制代码

方案三:更改.prettierrc文件文件

"prettier/prettier": ["error", {
     ..
    "endOfLine":"auto"//不让prettier检测文件每行结束的格式
     ..
  }],
复制代码

最佳实践

windows电脑git clone代码的时候,autocrlf选项默认为true,克隆下来的文件每行会被自动转成以CRLF结尾,若对文件不做任何修改,commit执行eslint的时候就会提示你删除CR。

因此最根本的办法就是对git的autocrlf配置属性进行修改。 在命令行中运行以下代码:

注意: git全局配置之后,新拉取代码就可以了。

git config --global core.autocrlf false
复制代码

core.autocrlf是git中负责处理line ending的变量,可以设置3个值:true,false,input。

(1)设置为true【config --global core.autocrlf true】

当设置成true时,这意味着你在任何时候添加(add)文件到git仓库时,git都会视为它是一个文本文件(text file)。它将把crlf变成LF。

(2)设置为false【config --global core.autocrlf false】

当设置成false时,line endings将不做转换操作。文本文件保持原来的样子。

(3)设置为input时,添加文件git仓库时,git把crlf编程lf。当有人Check代码时还是lf方式。因此在window操作系统下,不要使用这个设置。

参考文章

Delete eslint(prettier/prettier)错误

分类:
前端
标签: