eslint“解析错误:JSX中出现意外的令牌{”

时间:2018-12-04 09:20:48

标签: javascript reactjs eslint eslint-config-airbnb eslintrc

const title = 'My Minimal React Webpack Babel Setups';

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

此代码发生错误“ ESLint分析错误:意外的令牌{”

我的 .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,因为令牌“ <”不会发生错误。 (当我将.eslintrc.js文件中的extends部分更改为“ airbnb-base”时,会发生错误“ ESLint解析错误:意外的令牌<。但是现在,令牌“ <”不再发生错误)

但是,我的ESLint无法读取JSX语法行{variable}

3 个答案:

答案 0 :(得分:12)

仅靠自身力量是不够的。首先安装babel-eslint

npm install --save-dev babel-eslint

或使用纱线:

yarn add -D babel-eslint

然后将其添加到您的.eslintrc文件中:

"parser": "babel-eslint"

您可能也想安装eslint-plugin-babel,但我相信这不是必需的

答案 1 :(得分:2)

我在 Next.js 上遇到了相同的错误。

这些步骤解决了我的问题:

1)安装 babel-eslint

npm install --save-dev babel-eslint

2)将 babel-eslint 作为解析器添加到eslint配置中

"parser": "babel-eslint"

我的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
  }
}

答案 2 :(得分:0)

我的.eslintr具有此额外的配置以启用JSX

"parserOptions": {
    "ecmaFeatures": {
      "jsx": true
    }
  }
相关问题