使用 Eslint 时真的需要 Prettier 吗?

Cha*_*bot 11 eslint prettier

感谢 Eslint 和扩展,我真的不认为有任何理由将 Prettier 安装到我已经很漂亮的代码库中eslint:recommended。不仅感觉没什么用,而且有时当你在 Eslint 之上安装 Prettier 时,它的配置与 Eslint 的配置冲突。强制您安装如下软件包:eslint-config-prettier

Prettier 提供了哪些 Eslint 永远无法做到的功能?

Jos*_*osh 0

Tl;dr:您“不需要”这样做,但在当前版本的 ESLint 中,您需要单独的格式化程序(推荐)或第三方 lint 插件来强制格式化。


这里有两种工具在发挥作用,它们结构不同,并且适合不同的任务。谈谈这些工具如何在网络生态系统中工作:

  • 格式化程序通常仅对不影响运行时的代码琐事/空白应用更改,例如制表符与空格或何时插入换行符。它们运行得非常快,因为它们不必处理代码逻辑并且可以一次性重新格式化每个文件。
  • Linters通常运行一组可以理解代码逻辑的离散规则。它们可以非常强大,可以更好地改变逻辑,但速度较慢,因为 lint 规则必须考虑更多(特别是当您启用更高级的功能,例如typescript-eslint 的类型信息 linting),并且如果自动应用任何修复则重新运行。

这条线过去更加模糊,因为 ESLint 用于提供和推荐强制格式化的规则。这很好,因为您可以使用一种工具来进行格式化和 linting,并且因为每个 lint 规则都是可配置的,所以您可以非常精细地自定义您的格式化首选项。

然而,由于每个 lint 规则都处理一个独特的逻辑区域,并且如果自动应用任何修复,则所有规则都必须重新运行,因此使用 linter 进行格式化是出了名的慢,容易错过边缘情况,并且 lint 团队很难与. 一起工作。大多数 lint 团队现在建议不要使用linter进行格式化

正如两篇文章末尾提到的,如果您确实更喜欢使用 ESLint 进行格式化,则可以使用eslint.style插件。它提供强制执行格式化首选项的 lint 规则。