错误 - ESLint:7.32.0 ESLint 找不到要扩展的配置“标准”

Dax*_*evd 3 node.js reactjs eslint eslintrc

我们有一个 CircleCI 管道。我们有一个旧版本的 eslint 即 5.10.0,大约是三年前安装的,现在客户想要将节点版本升级到 16 并升级相关软件包。我已经修改了 package.json 文件并将 eslint 版本从 更改"eslint": "^5.10.0"为 " eslint": "^7.10.0"。现在,在分支 CircleCI 上推送更改时测试执行失败并出现以下错误:

哎呀!出了些问题!:(

ESLint:7.32.0

ESLint 找不到要扩展的配置“标准”。请检查配置名称是否正确。

配置“standard”是从“/home/xxx/xxx/.eslintrc.yml”中的配置文件引用的。

我已经用谷歌搜索过这个问题,但没有找到正确的解决方案。

我已经尝试过

  1. 通过猜测可以自动创建 .eslintrc.yml 文件来删除它。
  2. 尝试eslint --init在 script 标签下的 package.json 内 运行命令yarn run"scripts": { "test": "yarn run eslint --init && yarn lint && yarn flow && yarn jest", } 但这里使用了 CircleCI 管道,因此 eslint --init 命令会询问问题 How would you like to use ESLint? 在自动文件和测试执行期间,CircleCI 中没有任何规定来提供任何答案。

mar*_*ino 6

我有一个类似的情况,这个错误是由于我的eslint版本比所需的版本太新standard.

您可以尝试执行以下一些步骤来验证您是否也遇到这种情况:

  • 在您的项目本地运行npm init @eslint/config(会问您一些问题并生成一个新的.eslint.{js|yml|json}问题)
  • 当被问到“你想遵循哪种风格指南?” 回复standard

此时,您应该看到以下行中的一些内容

The style guide "standard" requires eslint@^7.12.1. You are currently using eslint@{version}
Do you want to downgrade?
Run Code Online (Sandbox Code Playgroud)

选择“否”将向您发出如下警告,并导致您在尝试执行 linting 时提到的错误。

Note: it might not work since ESLint's version is mismatched with the standard config
Run Code Online (Sandbox Code Playgroud)

就我而言,eslint 版本因主要 ( 8.11.0) 而异,这使得它更加明显,但它看起来也与您所拥有的非常相似。

如果此时您认为这确实是问题所在,那么以下一些替代方案可能会有所帮助:

  • 降级 eslint(很简单,但从长远来看,如果您希望依赖项保持最新,则不会起作用)
  • 切换到另一个没有 eslint 版本限制的风格指南(例如,配置设置建议使用 airbnb 或 google)
  • 切换到直接使用标准而不是通过 eslint

我不是 js 领域的专家,所以请随时指出我错过的任何内容