在 ESlint 中强制执行“换行式”规则有多重要?我可以把它关掉吗?

问题描述 投票:0回答:1

我创建了一个 Node.js 模块,很快就会开源。我最初在 Linux 上开发它,并决定在发布之前在 Windows 上测试它。当我在 Windows 上运行 ESLint 时,我注意到有大量相同的 linting 错误:

error  Expected linebreaks to be 'LF' but found 'CRLF'  linebreak-style

我在几个地方读到,当我在 Windows 上克隆存储库时,这些换行符是由 Git 插入的。我还了解到可以在 eslint 配置文件中关闭此规则。这样做安全吗?或者是否有关于此规则的“最佳实践”? (考虑到这将是一个开源项目,希望其他人能够为其做出贡献)

如有任何建议或反馈,我们将不胜感激。

javascript node.js git eslint
1个回答
3
投票

输入后尝试重新克隆您的存储库:

git config --global core.autocrlf false

这应该避免 Git 在结帐时自动将您的 eol(行尾)从 LF 转换为 CRLF。
然后你的 linter 应该找到预期的 eol。

注意:多年来我一直主张默认情况下该设置为 false:请参阅“Git:Unix 或 DOS 行终止”。


重新克隆存储库的替代方法是:

  • git rm -rf --cached .
    +
    git reset --hard HEAD
    GitHub 在“更改行结尾后刷新存储库

    中描述
  • 或者更好的是,使用 Git 2.16+ (Q1 2018)

    git add --renormalize

    对所有跟踪的文件重新应用“清理”过程,以强制将它们再次添加到索引中。
    在更改

    core.autocrlf
    配置或文本属性以更正添加了错误 CRLF/LF 行结尾的文件后,这非常有用。
    此选项意味着
    -u

    单独的 CR 字符不受影响,因此当 CRLF 清理为 LF 时,CRCLRF 序列仅部分清理为 CRLF。

© www.soinside.com 2019 - 2024. All rights reserved.