【发布时间】:2022-01-08 11:43:15
【问题描述】:
最近我开始查看各种 JavaScript 样式指南,我最喜欢 Airbnb。
但是,当我使用 Airbnb 样式指南配置 ESLint 时,我注意到他们的文档中定义的一些规则根本没有检查。例如:
- Group all your
constsand then group all yourlets. - Use shortcuts for booleans, but explicit comparisons for strings and numbers.
- Use
//for single line comments. Place single line comments on a newline above the subject of the comment. Put an empty line before the comment unless it’s on the first line of a block.
那么,如果以这段代码为例:
const array = [1, 2, 3, 4, 5];
let foo = 'foo';
const bar = 'bar';
if (array.length) {
console.log('Bar:', bar);
// Chaniging foo
foo = 'baz';
console.log('Foo:', foo);
}
linter 应该抛出 3 个错误:
- 我没有对所有 consts 和所有 let 进行分组,而是按顺序定义它们。
- 我没有在 if 语句中使用显式比较 -
array.length > 0。 - 我没有在评论前添加新行。
但是,linter 不会抛出任何错误。
【问题讨论】:
-
specifies 看到了什么规则?这些规则是否包括您上面列出的那些?
-
我应该在您的链接中检查什么?我刚刚在我的
.eslintrc.json中使用airbnb-base扩展了ESLint 配置。 -
该链接用于 eslint-config-airbnb-base 包的逻辑。您可以浏览每个文件并检查包中包含哪些规则,然后比较您在问题中列出的规则是否包含在包中。如果没有,除了 airbnb-base 附带的内容之外,您始终可以添加这些规则。您的问题是“这是否意味着 eslint-config-airbnb-base 不包含 Airbnb 样式指南建议的所有规则”,您可以使用源代码检查包含的内容和不包含的内容。
-
我明白了。我不知道在我的示例中进行检查的 ESLint 规则的名称,因此很难检查它们是否存在于链接中的文件中。由于
eslint-config-airbnb-base是由他们创建的,我认为它应该支持他们在文档中添加的所有规则。我随机检查了不同的规则来验证它们,这 3 个没有被验证,所以我猜可能还有更多。
标签: javascript eslint eslint-config-airbnb airbnb-js-styleguide