eslint"解析错误:JSX中的意外标记{"

You*_*eon 12 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>)
Run Code Online (Sandbox Code Playgroud)

此代码出现错误"ESLint Parsing Error:Unexpected token {"

我的.eslintrc.js文件是这样的

module.exports = {
    "extends": "airbnb"
};
Run Code Online (Sandbox Code Playgroud)

我安装这样的包

"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",
Run Code Online (Sandbox Code Playgroud)

我认为ESLint可以读取JSX,因为令牌"<"不会发生错误.(当我将.eslintrc.js文件中的extends部分更改为"airbnb-base"时,会出现错误"ESLint Parsing Error:Unexpected token <.但是现在,令牌"<"不会发生错误)

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

Bri*_* Le 20

Eslint本身就不够好.首先安装babel-eslint:

npm install --save-dev babel-eslint
Run Code Online (Sandbox Code Playgroud)

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

yarn add -D babel-eslint
Run Code Online (Sandbox Code Playgroud)

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


jav*_*ipt 5

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

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

1)安装babel-eslint

npm install --save-dev babel-eslint
Run Code Online (Sandbox Code Playgroud)

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

"parser": "babel-eslint"
Run Code Online (Sandbox Code Playgroud)

我的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
  }
}
Run Code Online (Sandbox Code Playgroud)