使用eslint-config-airbnb ESLint"模块构建失败"错误

dar*_*rin 12 reactjs eslint webpack

我正在尝试设置一个React项目,该项目使用webpack和ESLint以及用于ESLint的airbnb配置.当我尝试使用webpack dev服务器启动项目时,出现以下错误:

"模块构建失败:错误:/react-template/node_modules/eslint-config-airbnb/rules/react-a11y.js:ESLint配置无效: - 意外的顶级属性"ecmaFeatures"."

这是使用eslint-config-airbnb v.15.0.1.我检查了react-a11y.js文件并确认有一个"ecmaFeatures"的顶级属性.我知道从ESLint 2.0.0开始,ecmaFeatures现在应该在parserOptions属性下,但我不确定它是否仅适用于.eslintrc文件.如果可能,我想使用airbnb配置,所以我感谢任何帮助.这是我的.eslintrc文件供参考.

.eslintrc

{
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaVersion": 2016,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "env": {
    "es6": true,
    "browser": true,
    "node": true,
    "jest": true
  },
  "extends": ["airbnb"]
}
Run Code Online (Sandbox Code Playgroud)

guc*_*CIV 20

我想出了一个解决方案.

你必须编辑react-a11y.jsreact.js定位./node_modules/.bin/eslint-config-airbnb/rules/.

react-a11y.js删除:

ecmaFeatures: {
  jsx: true
},
Run Code Online (Sandbox Code Playgroud)

并替换为:

parserOptions: {
  ecmaFeatures: {
    jsx: true,
  },
},
Run Code Online (Sandbox Code Playgroud)

react.js刚刚删除:

ecmaFeatures: {
  jsx: true
},
Run Code Online (Sandbox Code Playgroud)

你应该好好去.

此外,我现在正在看airbnb的回购,看起来他们差不多一个月前修复了它,但我今天刚重新安装了eslint-config-airbnb,所以我不确定那里发生了什么.

这里是react-a11y.js diffreact.js diff的链接.它们准确显示了您需要添加/删除的内容.