带有 Airbnb 风格指南的 ESLint 并不适用于所有规则

Nen*_*vic 5 javascript eslint airbnb-js-styleguide eslint-config-airbnb

最近我开始检查所有各种 JavaScript 样式指南,我最喜欢Airbnb 。

\n

然而,当我使用 Airbnb 风格指南配置ESLint时,我注意到他们的文档中定义的一些规则根本没有被检查。例如:

\n
    \n
  1. 将您的所有内容分组consts,然后将您的所有内容分组lets
  2. \n
  3. 对布尔值使用快捷方式,但对字符串和数字使用显式比较。
  4. \n
  5. 用于//单行注释。将单行注释放在注释主题上方的换行符上。在注释前放置一个空行,除非它\xe2\x80\x99s 位于块的第一行。
  6. \n
\n

因此,如果您以此代码为例:

\n
const array = [1, 2, 3, 4, 5];\nlet foo = \'foo\';\nconst bar = \'bar\';\n\nif (array.length) {\n  console.log(\'Bar:\', bar);\n  // Chaniging foo\n  foo = \'baz\';\n  console.log(\'Foo:\', foo);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

linter 应该抛出 3 个错误:

\n
    \n
  1. 我没有将所有const分组,然后将所有let 分组,我按顺序定义了它们。
  2. \n
  3. 我没有在if语句中使用显式比较 - array.length > 0
  4. \n
  5. 我没有在评论之前添加新行。
  6. \n
\n

然而,linter 不会抛出任何错误。

\n

Nik*_*ets 2

Airbnb 风格指南是关于如何编写代码的建议。
ESLint 是一个由独立团队创建的工具,首先是 Nicholas C. Zakas。
因此建议利用 ESLint 自动检查某些规则,但不是全部。

一些 Airbnb 风格指南规则有尾随eslint: rule-name,表示它是否被检查。该主题中的所有 3 条规则都没有。
还有一个页面详细说明了新规则的添加。它指出:“截至 2020 年,我们只接受与新 ECMAScript 功能相关的规则。我们更喜欢在插件中实现新规则”。