eslint "ошибка синтаксического анализа: неожиданный токен {" в JSX - PullRequest
0 голосов
/ 04 декабря 2018
const title = 'My Minimal React Webpack Babel Setups';

const App = () => (<div><b>{title}</b><img src={img} /></div>)

В этом коде возникает ошибка "Ошибка синтаксического анализа ESLint: неожиданный токен {"

my .eslintrc.js файл похож на этот

module.exports = {
    "extends": "airbnb"
};

и я устанавливаю такие пакеты

"eslint": "^5.9.0",
"eslint-config-airbnb": "^17.1.0",
"eslint-loader": "^2.1.1",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-jsx-a11y": "^6.1.2",
"eslint-plugin-react": "^7.11.1",

Я думал, что ESLint может читать JSX, потому что в токене "<" не происходит ошибка.(Когда я изменяю раздел extends в файле .eslintrc.js на «airbnb-base», возникает ошибка «Ошибка синтаксического анализа ESLint: неожиданный токен <. Но теперь токен« <»не возникает ошибка) </p>

Однако мой ESLint не может прочитать строку синтаксиса JSX {переменная}

Ответы [ 3 ]

0 голосов
/ 04 декабря 2018

Мой .eslintr имеет эту дополнительную конфигурацию для включения JSX

"parserOptions": {
    "ecmaFeatures": {
      "jsx": true
    }
  }
0 голосов
/ 02 января 2019

У меня такая же ошибка на Next.js .

Эти шаги решили мою проблему:

1) Установка babel-eslint :

npm install --save-dev babel-eslint

2) Добавить babel-eslint в качестве синтаксического анализатора в конфигурацию eslint

"parser": "babel-eslint"

My config eslintвыглядит так ( .eslintrc ):

{
  "env": {
    "browser": true,
    "es6": true,
    "commonjs": true,
    "node": true
  },
  "extends": ["eslint:recommended", "plugin:react/recommended"],
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaVersion": 9,
    "ecmaFeatures": {
      "jsx": true
    },
    "sourceType": "module"
  },
  "plugins": ["react"],
  "rules": {
    "react/react-in-jsx-scope": 0,
    "no-console": 1
  }
}
0 голосов
/ 04 декабря 2018

Эслинт сам по себе не достаточно хорош.Сначала установите babel-eslint:

npm install --save-dev babel-eslint

Или с пряжей:

yarn add -D babel-eslint

Затем добавьте в файл .eslintrc:

"parser": "babel-eslint"

Возможно, вы захотитеустановить eslint-plugin-babel также, но я считаю, что это не нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...