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;
Me sale 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?
javascript
reactjs
eslint
DongYao
fuente
fuente
Respuestas:
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 continuos con JavaScripts ES6 ~ 7.
Agregar la propiedad "parserOptions" a su .eslintrc ya no es suficiente para situaciones particulares, como usar
en las clases de ES6, ya que ESLint no puede analizarlo por sí solo. Esta situación particular arrojará un error de:
La solución es hacer que ESLint sea analizado por un analizador compatible. babel-eslint es un paquete que me salvó recientemente después de leer esta página y decidí agregar esto como una solución alternativa para cualquier persona que venga más tarde.
solo agrega:
a su
.eslintrc
archivo y ejecutarnpm install babel-eslint --save-dev
oyarn add -D babel-eslint
.Tenga en cuenta que como la nueva API de contexto a partir de
React ^16.3
algunos cambios importantes, consulte la guía oficial .fuente
yarn add -D babel-eslint
para aquellos que usan hilo."parser": "babel-eslint"
declaración de configuración, está en el.eslintrc.json
. En mi caso, es un archivo JSON, pero básicamente, su archivo .eslintrc"parser": "babel-eslint"
Agregué el a mi archivo eslintrc pero obtuve múltiples errores en su lugar. Estoy trabajando con react y me dice que Mis componentes importados se llamaron pero nunca se usaron. Lo cual es extraño.ESLint 2.x experimentalmente admite la sintaxis ObjectRestSpread, puede activarlo añadiendo lo siguiente a su
.eslintrc
: docsESLint 1.x no es compatible de forma nativa con el operador de propagación, una forma de evitar esto es usar el analizador babel-eslint . Las últimas instrucciones de instalación y uso se encuentran en el archivo Léame del proyecto.
fuente
ecmaFeatures
ha quedado en desuso UsoecmaVersion
ecmaVersion: 2018
funciona sin previo aviso con ESLint 5"parser": "babel-eslint"
me ayudó a solucionar el problemaReferencia
fuente
Resolví este problema primero, instalando babel-eslint usando npm
En segundo lugar, agregue esta configuración en el archivo .eslintrc
fuente
En mi caso (estoy usando Firebase Cloud Functions) abrí
.eslintrc.json
y cambié:a:
fuente
Originalmente, la solución era proporcionar la siguiente configuración, ya que la desestructuración de objetos solía ser una característica experimental y no era compatible de manera predeterminada:
Desde la versión 5, esta opción ha quedado en desuso .
Ahora es suficiente declarar una versión de ES, que es lo suficientemente nueva:
fuente
Si tiene una tarea previa al compromiso con Husky corriendo
eslint
, continúe leyendo. Intenté la mayoría de las respuestasparserOptions
yparser
valores donde mi problema real era sobre la versión de nodo que estaba usando.Mi versión actual de nodo era 12.0.0, pero husky estaba usando mi versión predeterminada de nvm de alguna manera (aunque no la tenía
nvm
en mi sistema). Esto parece ser un problema con el propio husky . Entonces:$HOME/.nvm
de carpetas que no se borra cuando quiténvm
antes.fuente
Solo para el registro, si está utilizando eslint-plugin-vue , el lugar correcto para agregar
'parser': 'babel-eslint'
es dentro deparserOptions
param.https://eslint.vuejs.org/user-guide/#faq
fuente