无法将airbnb编码风格添加到nextjs 15

问题描述 投票:0回答:1

当我尝试添加

eslint-config-airbnb
时,它给了我这个错误

$ npm install --save-dev eslint-config-airbnb

npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR! 
npm ERR! While resolving: [email protected]
npm ERR! Found: [email protected]
npm ERR! node_modules/eslint-plugin-react-hooks
npm ERR!   eslint-plugin-react-hooks@"^5.0.0" from [email protected]
npm ERR!   node_modules/eslint-config-next
npm ERR!     dev eslint-config-next@"15.0.1" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! dev eslint-config-airbnb@"*" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: [email protected]
npm ERR! node_modules/eslint-plugin-react-hooks
npm ERR!   peer eslint-plugin-react-hooks@"^4.3.0" from [email protected]
npm ERR!   node_modules/eslint-config-airbnb
npm ERR!     dev eslint-config-airbnb@"*" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

正如他们的文档中提到的,我检查了所需的正确版本

npm info "eslint-config-airbnb@latest" peerDependencies

{
  eslint: '^7.32.0 || ^8.2.0',
  'eslint-plugin-react': '^7.28.0',
  'eslint-plugin-import': '^2.25.3',
  'eslint-plugin-jsx-a11y': '^6.5.1',
  'eslint-plugin-react-hooks': '^4.3.0'
}

根据我安装的输出

[email protected]
,上面的错误没有返回。

现在的问题是我无法安装

eslint-config-airbnb-typescript
,因为它带来了不同的依赖问题。

我尝试通过安装所需版本的

@typescript-eslint/parser
@typescript-eslint/eslint-plugin
来修复它,但它似乎给了我一个循环错误。

reactjs eslint eslint-config-airbnb next.js15
1个回答
0
投票

这里的问题是:

  1. 您的项目依赖于版本为
    eslint-config-next
    且名为
    15.0.1
    的包,并且需要
    eslint-plugin-react-hooks@"^5.0.0
  2. eslint-config-airbnb
    版本
    19.0.4
    需要
    eslint-plugin-react-hooks@"^4.3.0

此问题无法解决,因为

eslint-plugin-react-hooks
(版本 4.x.x)所需的
eslint-config-airbnb
版本低于
eslint-config-next
(版本 5.x.x)所需的版本。

在撰写本文时

eslint-config-airbnb
已经3年没有更新了,但是一个线程已打开涉及到
eslint-plugin-react-hooks
升级到v5。

此外,在撰写本文时,

eslint-config-airbnb-typescript
似乎尚未得到维护。围绕此也开了一个线程

您的选择是:

  1. 使用依赖于这些其他软件包的旧版本软件包,例如
    eslint-config-next
    ,以获得与旧版 ESLint 的兼容性。
  2. 暂时抛弃airbnb的东西,并完全采用最新的ESLint 9。

eslint-config-next
解释了放弃对旧依赖项的支持的原因here

由于较旧的 ESLint 已结束生命,如果优先考虑项目健康状况,(1) 将是一个可能的选择。

© www.soinside.com 2019 - 2024. All rights reserved.