使用.eslintrc.json时ESLint Airbnb配置加载失败如何解决
Node项目ESLint Airbnb配置JSON格式加载报错修复
问题现象
为Node项目配置基于Airbnb风格指南的ESLint校验时,仅.eslintrc.json格式配置触发报错,.eslintrc.js、.eslintrc.yml格式配置可正常运行,终端报错信息如下:
[Info - 9:24:00] Failed to load config "airbnb" to extend from. Referenced from: C:\GitWorkspace\lorand.eu\backend\.eslintrc.json
现有配置
package.json 开发依赖声明
"devDependencies": { "eslint": "^8.2.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.25.2" }
异常的.eslintrc.json配置
{ "env": { "es2021": true, "node": true }, "parserOptions": { "ecmaVersion": "latest", "sourceType": "module" }, "extends": "airbnb", "rules": { /* ... */ } }
故障原因
- 继承规则名与实际安装的依赖包不匹配:当前安装的是面向Node环境的基础版Airbnb规则包
eslint-config-airbnb-base,对应的可继承配置名应为airbnb-base;配置中填写的"airbnb"对应包含React语法规则的完整Airbnb包,本地未安装该包因此触发加载失败。 - 严格JSON语法不支持注释:
.eslintrc.json会被ESLint按标准JSON规范解析,rules字段后写入的/* ... */属于非法语法,会干扰配置正常解析。
注:.js、.yml格式的ESLint配置本身支持注释、语法校验更宽松,且这类配置中大概率正确填写了airbnb-base作为继承项,因此可以正常运行。
修复步骤
- 修改
extends字段值:将原来的"airbnb"改为"airbnb-base",和已安装的基础版规则包匹配。 - 移除JSON配置中的所有注释:严格遵循标准JSON语法,不要在
.eslintrc.json中写任何//或/* */格式的注释内容,自定义规则直接在rules对象中添加即可。
修复后的正确.eslintrc.json内容如下:
{ "env": { "es2021": true, "node": true }, "parserOptions": { "ecmaVersion": "latest", "sourceType": "module" }, "extends": "airbnb-base", "rules": {} }
如果确实需要使用支持React的完整Airbnb规则,可以执行安装命令补全对应依赖后,再将extends改回"airbnb",纯Node项目无该必要。
内容的提问来源于stack exchange,提问作者Lorand
相关产品推荐
相关产品推荐

