首页 > 解决方案 > ESLint "Unexpected token)" 也掩盖了文件中的其他问题

问题描述

我在 React 项目中与 Prettier 一起实现 ESLint,下面的代码给出了令人沮丧的解析错误。

ReactDOM.render(
  <TierComparisonApp {...tier_comparison_app.dataset} />,
  document.getElementById('tier_comparison_app'),
); <-- Parsing error: Unexpected token )

奇怪的是,当我在第二个参数传递给 之后删除逗号时render,该解析错误消失了,揭示了缺少该逗号的预期问题,tier_comparision_app以及未定义的另一个问题。

ReactDOM.render(
  <TierComparisonApp {...tier_comparison_app.dataset} />, <-- (correctly  caught as undefined)
  document.getElementById('tier_comparison_app') <-- (correctly saying to insert a comma)
);

更奇怪的是,进行上述更改揭示了文件中更早的问题使用==而不是有关===,这也是预期的行为。关于可能导致这种情况的任何想法?我创建了我的 Pastebin,.eslintrc.json因为它的规则有点密集。

标签: eslintprettier-eslinteslint-plugin-react

解决方案


因此,在写完这篇文章后,我立即意识到我没有在我的文件中设置我parser的,因此:babel-eslint.eslintrc.json

"parser": "babel-eslint",

非常直接的解决方案,并且完全理解 ESLint 为何会遇到解析问题。显然,您需要babel-eslint使用您最喜欢的包管理器进行安装。我会向其他遇到他们没想到的解析问题的人推荐这个,希望我仍然发布这个答案可以对下线的人有所帮助。


推荐阅读