今天拉代码进行开发,一运行,就看到了这近千的警告,蒙了,赶紧找解决办法,下面给大家介绍介绍吧。
问题产生原因
网上查了一下,问题产生的原因是windows下和linux下的文本文件的换行符不一致。
windows:CRLF(表示句尾使用回车换行两个字符,即windows下的”\r\n”换行)
Linux:LF(表示句尾,只使用换行,即末尾是”\n”)
mac:CR(表示只使用回车,即末尾是”\r”)
解决办法
方案一:手动把CRLF换成LF
方案二: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操作系统下,不要使用这个设置。