为什么?
该项目最初是由 ESLint 和 typescript-eslint
团队 决定从其核心代码库中弃用格式化/风格相关的规则,原因是 **维护成本**。该项目将这些规则移植并作为单独的包进行分发。我们将作为社区继续维护它们。
此外,我们还创建了一些新的规则来填补空白并提供更好的风格控制。
代码检查器与格式化器
您可能已经看到了一些讨论,反对使用 ESLint 来格式化源代码,因为代码检查器和格式化器是不同范围内的工具。虽然我们通常同意 ESLint 并不是进行格式化的最有效工具,但我们看到,目前带有自动修复功能的 ESLint 仍然是 **源代码** 格式化的最佳工具,因为它提供了对每个规则的细粒度控制,具有令人难以置信的可扩展性,并且尊重源代码的输入。
像 Prettier 和 dprint 这样的流行格式化器在格式化代码方面非常出色。但是,我们看到的主要问题是,它们的 "读取和重新打印" 方法 **丢弃了源代码中的所有风格信息**,这意味着我们无法保留我们认为更 "易读" 的风格。
以下两个示例表明,Prettier 和 dprint 会由于固定的 printWidth
选项而强制代码换行/取消换行。这不仅使代码的可读性降低,还会在版本控制中更改内容长度时创建不必要的换行/取消换行差异。
这种行为是强制性的,因为它们方法的根本性质。
使用 ESLint 中的样式规则,我们能够实现类似的格式兼容性,同时保留反映作者/团队意图的原始代码风格,并一次性应用修复。
这个项目是为那些关心这些细节并希望完全控制代码风格的人维护的。
如果您有兴趣了解更多信息,我们建议您阅读Anthony Fu的为什么我不使用 Prettier文章。