在 VCode 中将 CRLF 更改为 LF 因为 eslint 给我错误

Kid*_*Kid 5 reactjs prettier

为什么我必须手动将每个文件的“CRLF”更改为“LF”才能使 eslint(prettier) 警告消失?

当提交并且其他用户在各自的环境中加载文件时,这种方法会出现问题吗?正如你在图片中看到的那样,我收到了 "eslint": "^6.6.0"投诉,当我将右下方的“CRLF”切换为“LF”时,eslint(更漂亮)很高兴。

这以后会成为问题吗?

在此输入图像描述 在此输入图像描述

IMS*_*SoP 10

换行符传统上在 DOS/Windows 系统上由两个字节(CR 和 LF)表示,而在 Unix/Linux 系统上仅由一个字节(LF)表示。你看到的规则,记录在 eslint 这里prettier 这里默认是说所有文件都应该使用 Unix 约定(说“删除 CR”相当于说“仅将 CRLF 转换为 LF”)以确保代码库是持续的。

如果您的所有文件当前都是 CRLF,您有两个选择:

  • 配置 eslint/prettier 以标准化“crlf”/“windows”(或完全禁用该规则)。
  • 将文件的行结尾从 CRLF 更改为 LF。这可以是使用您显示的设置逐个文件、通过运行命令行工具(如 )dos2unix或通过配置prettier自动修复问题。

除了修复现有文件之外,您可能还想看看为什么它们会以这种方式显示:

  • 确保 VSCode 配置为默认创建具有 Unix / LF 行结尾的新文件
  • git 有一个“功能”,默认情况下,在 Windows 上创建的签出将在每次签出时将 LF 转换为 CRLF,并在提交时将其转换回来。由于任何像样的代码编辑器都可以很好地处理 LF 行结尾(甚至记事本现在也支持它们!),因此您应该将其关闭git config core.autocrlf false

至于这将如何影响其他人:

  • 如果您更改共享存储库中文件的行结尾,这将显示为版本历史记录中每一行的更改。这主要是一种一次性的麻烦,并且在您查看文件的历史记录时会产生一些噪音。
  • 在不太可能的情况下,有人在仅支持 CRLF 行结尾的工具中打开文件,他们在打开文件时会遇到问题。他们可以通过上述core.autocrlf设置或使用更好的工具来解决这个问题。