如何解决 eslint 中的“加载规则‘react/display-name’时出错:‘O’上不存在‘[[GeneratorState]]’”错误

Ala*_*405 4 npm hadoop-yarn eslint next.js bun

就我而言,我正在使用eslinton nextjswith eslint-config-next。我用作bun包管理器,但我也发现了此问题的npm实例yarn

我没有添加任何新包,但运行后bun updateyarn update问题开始出现。Linting 失败并出现以下错误:

Error while loading rule 'react/display-name': `[[GeneratorState]]` is not present on `O`
Occurred while linting ...
Run Code Online (Sandbox Code Playgroud)

Ala*_*405 6

经过一些研究,我发现eslint-plugin-react存储库及其依赖项上报告了类似的问题。当包管理器安装同一包的多个不兼容版本时,此问题与依赖性解析中的错误有关。这里报告了类似的问题。解决方案是删除重复的依赖项:

  • 如果您正在使用npm,解决方案是运行npm dedupe
  • 如果您正在使用,您可以通过安装yarn-dedulicateyarn来执行相同的操作
  • 如果您正在使用bun,那么您就不走运了,因为当前没有重复数据删除命令。在这种情况下,您应该:
    • 从您的bun.lock生成yarn.lock,bun install --yarn以便您可以检查依赖关系
    • 使用yarn-dedulicate修复你的yarn.lock文件
    • 等待此问题得到解决,以便您可以bun.lockb从修复中重新生成yarn.lock

作用npm dedupe是通过聚合重复的依赖关系来简化依赖关系,以便它们在包之间共享。