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

问题及原因

在 VSCode 编码过程中,遇到了 ESLint 提示的“Delete ␍ eslint(prettier/prettier)”错误。这通常是因为安装的 Prettier 插件预设了与您操作系统不一致的文件换行符。由于不同操作系统(如 Windows、Linux 和 macOS)具有各自的换行符格式,导致兼容性问题。
错误提示
prettier插件

例如,Windows 使用 \r\n(CRLF)作为换行符,而 Linux 和 macOS 则采用 \n(LF)。在一些较早的 macOS 版本中,甚至使用 \r(CR)作为换行符。为了工程化的一致性,许多项目仓库默认规定使用 LF 作为换行符。但当 Prettier 插件默认设置为 LF,而开发环境为 Windows 时,就会出现提示删除 \r 的错误。

解决方案

  1. 打开设置,或者直接快捷键 Ctrl + , 在搜索栏输入 prettier,然后找到 End Of Line 这个选项设置为 auto
    插件设置
  2. .prettierrc 文件中添加 endOfLine: "auto" 选项,或者在在.eslintrc.cjs中增加配置 如下:
    prettierrc文件配置
{
    "endOfLine": "auto"
}

eslintrc.cjs文件配置

"rules": {
  "prettier/prettier": ["error", { "endOfLine": "auto" }]
}
  1. 点击一个个文件手动切换(效率较低)
    手动切换

  2. 配置git (最优)
    core.autocrlf 是 Git 中一个重要的配置选项,它决定了 Git 如何处理换行符(newline)的转换。在跨平台协作的项目中,不同的操作系统(如 Windows、Linux、macOS)使用不同的换行符风格,这可能会导致不必要的麻烦。
    core.autocrlf 配置有三个值:

  • true:当检出代码时,将 LF 转换为 CRLF;当提交代码时,将 CRLF 转换为 LF。
  • input:检出代码时不转换,提交代码时将 CRLF 转换为 LF。
  • false:不进行任何转换
    VScode 能够自动识别文件的换行符是LF还是CRLF。如果你用的是windows,文件编码是UTF-8且包含中文,最好全局将autocrlf设置为false, 在CMD或者Windows Terminal中输入git config --global core.autocrlf false这一命令的关键在于禁用了 Git 的自动换行符转换功能。

设置此全局配置后,需要重新拉取仓库中的代码,以确保所有文件都按照预期处理换行符。这样做可以保证不同操作系统间的文件一致性,从而避免潜在的兼容性问题。