web-dev-qa-db-fra.com

Erreur ESLint "Echec de la construction du module" avec eslint-config-airbnb

J'essaie de mettre en place un projet React qui utilise webpack et ESLint avec la configuration airbnb pour ESLint. Lorsque j'essaie de démarrer le projet avec le serveur Webpack dev, le message d'erreur suivant s'affiche:

"Échec de la construction du module: Erreur: /React-template/node_modules/eslint-config-airbnb/rules/react-a11y.js: La configuration ESLint n'est pas valide: - Propriété de niveau supérieur inattendue" ecmaFeatures " "."

Ceci utilise eslint-config-airbnb v. 15.0.1. J'ai vérifié le fichier react-a11y.js et confirmé qu'il existe une propriété de niveau supérieur de "ecmaFeatures". Depuis ESLint 2.0.0, je sais que ecmaFeatures est maintenant supposé appartenir à la propriété parserOptions, mais je ne suis pas sûr que cela s'applique uniquement au fichier .eslintrc. Si possible, j'aimerais utiliser la configuration airbnb. J'apprécie donc toute aide. Voici mon fichier .eslintrc pour référence.

.eslintrc

{
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaVersion": 2016,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "env": {
    "es6": true,
    "browser": true,
    "node": true,
    "jest": true
  },
  "extends": ["airbnb"]
}
12
darin

J'ai trouvé une solution.

Vous devez éditer react-a11y.js et react.js situés dans ./node_modules/.bin/eslint-config-airbnb/rules/.

Dans react-a11y.js supprimer:

ecmaFeatures: {
  jsx: true
},

et le remplacer par:

parserOptions: {
  ecmaFeatures: {
    jsx: true,
  },
},

Dans react.js, supprimez simplement:

ecmaFeatures: {
  jsx: true
},

et vous devriez être bon pour aller.

De plus, je regarde le repo de airbnb en ce moment et il semble qu'ils l'aient corrigée il y a presque un mois, mais je viens de réinstaller eslint-config-airbnb aujourd'hui, alors je ne suis pas sûr de ce qui s'est passé là-bas.

Voici des liens vers react-a11y.js diff et le react.js diff . Ils montrent exactement ce que vous devez ajouter/supprimer.

20
gucciferXCIV

Global eslint a été mis à niveau de 3.19.0-1 à 4.0.0-1 lorsque le problème est apparu pour moi.

eslint v4 n'est pas encore pris en charge dans eslint-config-airbnb et eslint-config-airbnb-base

https://github.com/eslint/eslint/issues/8726#issuecomment-308367541

2
Abel

Votre JSON n'est pas valide. Il manque des guillemets autour du premier "analyseur";

{
  "parser": "babel-eslint",
  "parserOptions": {
  "ecmaVersion": 2016,
  "sourceType": "module",
   "ecmaFeatures": {
  "jsx": true
 }
},
  "env": {
  "es6": true,
  "browser": true,
  "node": true,
  "jest": true
 },
 "extends": ["airbnb"]
}
0
Dennis Askeland