Error de análisis de ESLint: token inesperado

Resuelto DongYao asked hace 8 años • 0 respuestas

Con este código:

import React from 'react';
import { Link } from 'react-router';
import { View, NavBar } from 'amazeui-touch';

import * as Pages from '../components';

const {  Home, ...Components } = Pages;

Recibo este error de eslint:

7:16  error  Parsing error: Unexpected token .. Why?

Aquí está mi configuración de 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
    }],
  }
}

.... .... ¿Cuál es el problema?

DongYao avatar Mar 15 '16 09:03 DongYao
Aceptado

Se producen errores de token inesperados en el análisis de ESLint debido a la incompatibilidad entre su entorno de desarrollo y las capacidades de análisis actuales de ESLint con los cambios en curso con JavaScripts ES6~7.

Agregar la propiedad "parserOptions" a su .eslintrc ya no es suficiente para situaciones particulares, como usar

static contextTypes = { ... } /* react */

en clases de ES6 ya que ESLint actualmente no puede analizarlo por sí solo. Esta situación particular arrojará un error de:

error Parsing error: Unexpected token =

La solución es hacer que ESLint sea analizado por un analizador compatible, es decir, @babel/eslint-parser o babel-eslint para la versión de babel inferior a v7.

solo agrega:

"parser": "@babel/eslint-parser"

a su .eslintrcarchivo y ejecute npm install @babel/eslint-parser --save-devo yarn add -D @babel/eslint-parser. Si usa pnpm, puede ejecutar pnpm add -D @babel/eslint-parser.

Tenga en cuenta que, dado que la nueva API de contexto a partir de React ^16.3tiene algunos cambios importantes, consulte la guía oficial .

hanorine avatar Apr 15 '2017 12:04 hanorine

En mi caso (estoy usando Firebase Cloud Functions), abrí .eslintrc.jsony cambié:

"parserOptions": {
  // Required for certain syntax usages
  "ecmaVersion": 2017
},

a:

"parserOptions": {
  // Required for certain syntax usages
  "ecmaVersion": 2020
},
Alvin Konda avatar Sep 26 '2019 19:09 Alvin Konda

"parser": "babel-eslint"me ayudó a solucionar el problema

{
    "parser": "babel-eslint",
    "parserOptions": {
        "ecmaVersion": 6,
        "sourceType": "module",
        "ecmaFeatures": {
            "jsx": true,
            "modules": true,
            "experimentalObjectRestSpread": true
        }
    },
    "plugins": [
        "react"
    ],
    "extends": ["eslint:recommended", "plugin:react/recommended"],
    "rules": {
        "comma-dangle": 0,
        "react/jsx-uses-vars": 1,
        "react/display-name": 1,
        "no-unused-vars": "warn",
        "no-console": 1,
        "no-unexpected-multiline": "warn"
    },
    "settings": {
        "react": {
            "pragma": "React",
            "version": "15.6.1"
        }
    }
}

Referencia

 avatar Jul 25 '2017 09:07