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

change CRLF to LF in VCode because eslint give me error

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

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

以后会不会有问题?

传统上,换行符在 DOS/Windows 系统上由两个字节(CR 和 LF)表示,而在 Unix/Linux 系统上仅由一个字节 (LF) 表示。您看到的规则,已记录 for eslint here and for prettier here 默认表示所有文件都应使用 Unix 约定(说“删除 CR”等同于说“仅将 CRLF 转换为 LF”)以确保代码库一致。

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

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

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

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

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

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