配置Airbnb风格规范的ESLint无法触发部分规则该如何解决?
你遇到的问题是Airbnb官方风格规范中提到的部分规则,并没有默认集成到eslint-config-airbnb或者eslint-config-airbnb-base的预设配置中,需要手动安装对应插件、在ESLint配置中手动开启规则才能生效,对应三个规则的解决方法如下:
针对
const和let分组声明的规则
该规则没有ESLint内置校验,也没有被Airbnb预设开启,需要先安装第三方插件eslint-plugin-sort-variable-declarations,再配置对应规则要求const分组在前、let分组在后即可。针对数字/字符串需要显式比较的规则
你提到的数组长度隐式判断的校验,需要安装eslint-plugin-unicorn插件,开启unicorn/explicit-length-check规则,即可强制要求所有长度判断必须写为显式的array.length > 0或者array.length === 0格式。针对单行注释前需要空行的规则
该规则对应ESLint内置的lines-around-comment规则,Airbnb预设没有开启相关配置,你只需要手动配置该规则的参数,设置注释前需要空行,同时允许块、对象、数组等结构的首行注释不用留空,就能完全匹配Airbnb的文档要求。
下面是完整的ESLint配置示例:
{ "extends": ["airbnb-base"], "plugins": ["unicorn", "sort-variable-declarations"], "rules": { // 强制const、let分组声明 "sort-variable-declarations/sort-variable-declarations": ["error", { "grouped": true, "order": ["const", "let"] }], // 强制显式的长度判断 "unicorn/explicit-length-check": "error", // 强制单行注释前空行,排除结构首行的情况 "lines-around-comment": ["error", { "beforeLineComment": true, "allowBlockStart": true, "allowObjectStart": true, "allowArrayStart": true, "allowClassStart": true }] } }
完成配置后重新运行ESLint,你给出的示例代码就会触发对应的3条报错了。
内容的提问来源于stack exchange,提问作者NeNaD
相关产品推荐
相关产品推荐

