Error: Failed to load parser 'babel-eslint' declared in '.eslintrc': Cannot find module 'babel-eslint' in create-react-app

Error: Failed to load parser 'babel-eslint' declared in '.eslintrc': Cannot find module 'babel-eslint' in create-react-app

正在尝试安装 eslint into create-react-app,但在 运行 linter 时出现下一个错误:

这是我的 .eslintrc 配置文件:

{
  "extends": ["airbnb", "prettier", "prettier/react"],
  "plugins": ["prettier"],
  "parser": "babel-eslint"
}

如果手动安装 babel-eslint 它可能会根据项目和 react-scripts 依赖项之间的包冲突产生另一个错误:

要解决此问题,只需重用 react-scripts 中已安装的 babel-eslint 依赖项。更新您的配置:

{
  "extends": ["airbnb", "prettier", "prettier/react"],
  "plugins": ["prettier"],
  "parser": "react-scripts/node_modules/babel-eslint"
}

在我的案例中,解决方案只是 运行 npm install eslint --save-dev 用于更新 eslint 版本

运行 项目根文件夹 eslint . 上的 eslint 将显示您可能需要安装的缺失包,这对我来说效果很好。

yarn add eslint --save-dev 为我解决了这个问题!

这里有点晚了,但我想我会分享我前进的动力......

我完全忽略了错误输出,它告诉我 .eslintrc 文件(正在寻找所述包)所在的位置。如您所见...我有一些随机 .eslintrc 生活在我的项目之外,不知何故被捡起来了。

Failed to load parser 'babel-eslint' declared in '../.eslintrc': Cannot find module 'babel-eslint'

解决方案:

删除这个包最终为我修复了错误。不确定该文件是如何到达那里的,但在以前的项目中是错误的。

我怀疑和全局安装babel-eslint和eslint有关

对我来说,是因为那个依赖确实没有安装...我只是按照GatsbyJS的官方指南,并没有安装(不知道为什么那个指南不完整)。

所以只是:yarn add -D babel-eslint

❯ yarn add -D babel-eslint 
yarn add v1.22.15
[1/4] Resolving packages...
warning babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.

babel-eslint 似乎已被弃用,现在包在 babel 下作为 ES 模块提供,因此删除 babel-eslint 并安装 @babel/eslint-parser

yarn remove babel-eslint
yarn add -D @babel/eslint-parser

你安装的是@babel/eslint-parser还是eslint-parser? 在我的例子中,我不得不使用 @babel/eslint-parser 并且 .eslintrc 看起来像这样:

"parser": "@babel/eslint-parser",

只需在.eslintrc

中添加@babel/eslint-parser

至于我,我只需安装这个 npm install eslint@4.x babel-eslint@8 - g 它对我有用