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

Posted

技术标签:

【中文标题】eslint“解析错误:JSX中的意外令牌”【英文标题】:eslint "parsing error: Unexpected token " in JSXeslint“解析错误:JSX中的意外令牌” 【发布时间】:2019-05-05 16:10:39 【问题描述】:
const title = 'My Minimal React Webpack Babel Setups';

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

此代码出现错误“ESLint Parsing Error: Unexpected token ”

我的.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,因为令牌“

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

【问题讨论】:

但是代码没有错误。效果好吗? @PraveenKumarPurushothaman 是的。它完全正确。我可以使用 babel 编译我的代码,并且它在我的浏览器上运行良好。但是,ESLint 说 Parsing Error. 能看看有没有ESLint升级吗? @PraveenKumarPurushothaman 我的 ESLint 版本是最新版本 (5.9.0)。我使用命令“npm update”和npmjs.org site 检查它 【参考方案1】:

Eslint 本身还不够好。先安装babel-eslint

npm install --save-dev babel-eslint

或者用纱线:

yarn add -D babel-eslint

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

"parser": "babel-eslint"

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

【讨论】:

感谢您的回答。所有问题都已解决。当我不使用babel 时,我应该安装babel-eslint 吗? 你应该。你不需要使用 babel 来安装它。它只是帮助 eslint 解析代码@YouHoGeon 我只是这样做了,它破坏了很多其他的东西。这个答案可能已经过时了...... @JamesBender 不这么认为。你能稍微扩展一下你的问题吗? 您可能还需要 "parser": "babel-eslint" 在您的 .babelrc 中。【参考方案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
  

【讨论】:

【参考方案3】:

我的 .eslintr 有这个额外的配置来启用 JSX

"parserOptions": 
    "ecmaFeatures": 
      "jsx": true
    
  

【讨论】:

不幸的是,它的工作原理相同。谢谢你的评论。

以上是关于eslint“解析错误:JSX中的意外令牌”的主要内容,如果未能解决你的问题,请参考以下文章

eslint语法报错解决

eslint语法报错解决

Eslint报错整理与解决方法

vue eslint报错解决办法

Eslint报错整理与解决方法(持续整理)

解决vue代码缩进报错问题 关闭ESlint