Avec ce code:
import React from 'react';
import { Link } from 'react-router';
import { View, NavBar } from 'amazeui-touch';
import * as Pages from '../components';
const { Home, ...Components } = Pages;
J'obtiens cette erreur eslint:
7:16 error Parsing error: Unexpected token .. Why?
Voici ma configuration eslint:
{
"extends": "airbnb",
"rules": {
/* JSX */
"react/prop-types": [1, {
"ignore": ["className", "children", "location", "params", "location*"]
}],
"no-param-reassign": [0, {
"props": false
}],
"prefer-rest-params": 1,
"arrow-body-style": 0,
"prefer-template": 0,
"react/prefer-stateless-function": 1,
"react/jsx-no-bind": [0, {
"ignoreRefs": false,
"allowArrowFunctions": false,
"allowBind": true
}],
}
}
.... .... Quel est le problème?
javascript
reactjs
eslint
DongYao
la source
la source
Réponses:
Des erreurs de jeton inattendues dans l'analyse ESLint se produisent en raison d'une incompatibilité entre votre environnement de développement et les capacités d'analyse actuelles d'ESLint avec les modifications en cours avec JavaScripts ES6 ~ 7.
L'ajout de la propriété "parserOptions" à votre .eslintrc n'est plus suffisant pour des situations particulières, comme l'utilisation
dans les classes ES6 car ESLint n'est actuellement pas en mesure de l'analyser seul. Cette situation particulière générera une erreur de:
La solution consiste à faire analyser ESLint par un analyseur compatible. babel-eslint est un package qui m'a sauvé récemment après avoir lu cette page et j'ai décidé de l'ajouter comme solution alternative pour quiconque viendrait plus tard.
il suffit d'ajouter:
dans votre
.eslintrc
fichier et exécuteznpm install babel-eslint --save-dev
ouyarn add -D babel-eslint
.Veuillez noter que comme la nouvelle API de contexte à partir de
React ^16.3
a quelques changements importants, veuillez vous référer au guide officiel .la source
yarn add -D babel-eslint
pour ceux qui utilisent Yarn."parser": "babel-eslint"
instruction config, elle se trouve dans le fichier.eslintrc.json
. Dans mon cas, c'est un fichier JSON, mais en gros, votre fichier .eslintrc"parser": "babel-eslint"
à mon fichier eslintrc mais j'ai eu plusieurs erreurs à la place. Je travaille avec react et cela me dit que mes composants importés ont été appelés mais jamais utilisés. Ce qui est étrange.ESLint 2.x prend en charge expérimentalement la syntaxe ObjectRestSpread, vous pouvez l'activer en ajoutant ce qui suit à votre
.eslintrc
: docsESLint 1.x ne supporte pas nativement l'opérateur de diffusion, une façon de contourner ce problème est d'utiliser l' analyseur babel-eslint . Les dernières instructions d'installation et d'utilisation se trouvent dans le fichier Lisez-moi du projet.
la source
ecmaFeatures
est obsolète. UtilisationecmaVersion
ecmaVersion: 2018
fonctionne sans avertissement avec ESLint 5"parser": "babel-eslint"
m'a aidé à résoudre le problèmeRéférence
la source
J'ai résolu ce problème en installant d'abord babel-eslint en utilisant npm
Deuxièmement, ajoutez cette configuration dans le fichier .eslintrc
la source
Dans mon cas (j'utilise Firebase Cloud Functions), j'ai ouvert
.eslintrc.json
et modifié:à:
la source
À l'origine, la solution consistait à fournir la configuration suivante, car la déstructuration d'objets était une fonctionnalité expérimentale et non prise en charge par défaut:
Depuis la version 5, cette option est obsolète .
Il suffit maintenant de déclarer une version d'ES, ce qui est assez récent:
la source
Si vous avez une tâche de pré-commit avec husky en cours d'exécution
eslint
, veuillez continuer à lire. J'ai essayé la plupart des réponses surparserOptions
etparser
valeurs où mon problème réel concernait la version du nœud que j'utilisais.Ma version de nœud actuelle était 12.0.0, mais husky utilisait d'une manière ou d'une autre ma version par défaut de nvm (même si je n'en avais pas
nvm
dans mon système). Cela semble être un problème avec Husky lui-même. Alors:$HOME/.nvm
dossier qui n'a pas été supprimé lorsque je l'ai suppriménvm
plus tôt.la source
Pour mémoire, si vous utilisez eslint-plugin-vue , le bon endroit pour ajouter
'parser': 'babel-eslint'
est à l'intérieur deparserOptions
param.https://eslint.vuejs.org/user-guide/#faq
la source