Delete `␍`eslint(prettier/prettier) 错误的解决方案

发布时间 2023-06-08 13:25:56作者: LiusCraft

问题

罪魁祸首是git的一个配置属性:core.autocrlf
由于历史原因,windows下和linux下的文本文件的换行符不一致。

  • Windows在换行的时候,同时使用了回车符CR(carriage-return character)和换行符LF(linefeed character)
  • 而Mac和Linux系统,仅仅使用了换行符LF
  • 老版本的Mac系统使用的是回车符CR

解决

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

两种方式:

  1. 输入:git config --global core.autocrlf false 可解决。
  2. ctrl+syarn run lint --fix方案为何可以修复eslint错误了吧,因为Git自动将CRLF转换成了LF。