С этим кодом:
import React from 'react';
import { Link } from 'react-router';
import { View, NavBar } from 'amazeui-touch';
import * as Pages from '../components';
const { Home, ...Components } = Pages;
Я получаю эту ошибку eslint:
7:16 error Parsing error: Unexpected token .. Why?
Вот мой конфиг 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
}],
}
}
.... .... В чем проблема?
javascript
reactjs
eslint
DongYao
источник
источник
Ответы:
Непредвиденные ошибки токенов при разборе ESLint возникают из-за несовместимости среды разработки и текущих возможностей синтаксического анализа ESLint с текущими изменениями в JavaScripts ES6 ~ 7.
Добавление свойства "parserOptions" к вашему .eslintrc больше не достаточно для определенных ситуаций, таких как использование
в классах ES6, поскольку ESLint в настоящее время не может разобрать его самостоятельно. Эта конкретная ситуация приведет к ошибке:
Решение состоит в том, чтобы ESLint анализировал совместимый синтаксический анализатор. babel-eslint - это пакет, который недавно спас меня после прочтения этой страницы, и я решил добавить его в качестве альтернативного решения для всех, кто придет позже.
просто добавь:
в ваш
.eslintrc
файл и запуститеnpm install babel-eslint --save-dev
илиyarn add -D babel-eslint
.Обратите внимание , что , как новый контекст API , начиная с
React ^16.3
имеют некоторые важные изменения, пожалуйста , обратитесь к официальному руководству .источник
yarn add -D babel-eslint
для тех, кто использует пряжу."parser": "babel-eslint"
оператор конфигурации, он находится в.eslintrc.json
. В моем случае это файл JSON, но в основном ваш файл .eslintrc"parser": "babel-eslint"
свой файл eslintrc, но вместо этого получил несколько ошибок. Я работаю с реакции, и он говорит мне, что мои импортированные компоненты были вызваны, но никогда не использовались. Что странно.ESLint 2.x экспериментально поддерживает синтаксис ObjectRestSpread, вы можете включить его, добавив следующее в
.eslintrc
: docsESLint 1.x изначально не поддерживает оператор распространения, одним из способов обойти это является использование анализатора babel-eslint . Последние инструкции по установке и использованию находятся в файле readme проекта.
источник
ecmaFeatures
был объявлен устаревшим ИспользованиеecmaVersion
ecmaVersion: 2018
работает без предупреждения с ESLint 5"parser": "babel-eslint"
помог мне решить проблемуСсылка
источник
Сначала я решил эту проблему, установив babel-eslint с помощью npm.
Во-вторых, добавьте эту конфигурацию в файл .eslintrc.
источник
В моем случае (я использую Firebase Cloud Functions) я открыл
.eslintrc.json
и изменил:чтобы:
источник
Первоначально решением было предоставить следующую конфигурацию, поскольку деструктуризация объекта раньше была экспериментальной функцией и не поддерживалась по умолчанию:
Начиная с версии 5, эта опция устарела .
Теперь достаточно объявить версию ES, которая является достаточно новой:
источник
Если у вас есть задание перед коммитом с хаски
eslint
, пожалуйста, продолжайте читать. Я перепробовал большинство ответовparserOptions
иparser
значений, где моя настоящая проблема касалась версии узла, которую я использовал.Моя текущая версия узла была 12.0.0, но лайка каким-то образом использовала мою версию по умолчанию для nvm (хотя
nvm
в моей системе ее не было). Кажется, это проблема самой лайки . Так:$HOME/.nvm
папку, которая не была удалена, когда я удалилnvm
ранее.источник
Для справки: если вы используете eslint-plugin-vue , правильное место для добавления
'parser': 'babel-eslint'
- внутриparserOptions
param.https://eslint.vuejs.org/user-guide/#faq
источник