type
status
date
slug
summary
tags
category
icon
password
问题根源
导致这个问题,一般是Eslint或者Prettier配置冲突引起的。
由于历史原因,Window和linux下的文本文件的换行符是不一致的,Window换行时,使用了回车符CR(carriage-return character)和换行符LF(linefeed character),而Mac和Linux系统换行符,仅仅使用了换行符LF,所以ESlint和Prettier的配置文件在IDE会出现该问题,如图显示:
除此之外,老版本的Mac系统使用的回车符也有不同,使用了CR回车符,三者的主要区别:
Window | Linux/Mac | Old Mac(pre-OSX) |
CR+LF | LF | CR |
‘\n\r’ | '\n’ | ‘\r’ |
因此,文本文件在不同系统下创建和使用时就会出现不兼容的问题。
项目仓库中默认是
Linux环境
下提交的代码,文件默认是以LF结尾
的(工程化需要,统一标准)。windows
电脑git clone
代码的时候,如果我的autocrlf(在windows下安装git,该选项默认为true)为true
,那么文件每行会被自动转成以CRLF
结尾,如果对文件不做任何修改,pre-commit
执行eslint
的时候就会提示你删除CR
。解决方案
1、主要是针对Window系统,将全局
autocrlf
设置为false
,Git全局配置后,需要重新拉取代码2、在VSCode IDE可以通过一键切换处理,将CRLF切换成LF
- 作者:HRope
- 链接:https://hrope.cn/article/vscode-cr
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。