我想同时使用Prettier和ESLint,但是仅通过一个接一个地使用它们,我遇到了一些冲突。我看到似乎有这三个软件包可以让它们串联使用:
prettier-eslint
eslint-plugin-prettier
eslint-config-prettier
但是,我不确定要使用哪个包名称,因为它们都包含eslint
和prettier
。
我应该使用哪个?
Answers:
ESLint包含许多规则和那些格式化相关的更漂亮有可能会发生冲突,比如arrow-parens
,space-before-function-paren
等。因此使用它们在一起会引起一些问题。已创建以下工具,以将ESLint和Prettier一起使用。
我基于要点以表格格式编写了一个比较,因为Stack Overflow不支持表格格式。如果您更喜欢组织,请查看。
prettier-eslint
:先运行,prettier
然后eslint --fix
在代码上运行。eslint
通常具有自动修复格式相关规则的功能,并且eslint --fix
能够修复Prettier引入的冲突格式。您无需prettier
单独运行该命令。
eslint-plugin-prettier
:这是一个ESLint插件,这意味着它包含ESLint将检查的其他规则的实现。此插件在内部使用Prettier,并且当您的代码与Prettier的预期输出不同时,它将引发问题。这些问题可以通过自动修复--fix
。使用此插件,您无需prettier
单独运行命令,该命令作为插件的一部分运行。此插件不会关闭与格式相关的规则,如果您手动或通过看到此类规则有冲突,则需要将其关闭eslint-config-prettier
。
eslint-config-prettier
:这是一个ESLint配置,它包含规则的配置(某些规则是打开,关闭还是特殊配置)。此配置允许您将Prettier与其他ESLint配置一起使用,例如eslint-config-airbnb
通过关闭可能与Prettier冲突的与格式相关的规则。使用此配置,您不需要使用,prettier-eslint
因为Prettier格式化代码后,ESLint不会抱怨。但是,您将需要prettier
单独运行该命令。
希望这可以总结出差异。
更新:建议让Prettier处理格式化和ESLint处理非格式化问题,prettier-eslint
这与该做法的方向不同,因此prettier-eslint
不再推荐。您可以一起使用eslint-plugin-prettier
和eslint-config-prettier
。
eslint-config-prettier
,为什么我们需要更漂亮?不会eslint --fix
以更漂亮的方式格式化代码吗?