我有两个项目有同样的问题,但不清楚为什么npm解决它们的方式不同:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: domain-driven-hexagon@2.0.0
npm ERR! Found: slonik@31.4.2
npm ERR! node_modules/slonik
npm ERR! slonik@"^31.2.4" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer slonik@"27 - 29" from @slonik/migrator@0.11.3
npm ERR! node_modules/@slonik/migrator
npm ERR! @slonik/migrator@"^0.11.3" 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 WARN ERESOLVE overriding peer dependency
npm WARN While resolving: rxjs-for-await@0.0.2
npm WARN Found: rxjs@7.4.0
npm WARN node_modules/rxjs
npm WARN rxjs@"^7.0.0" from the root project
npm WARN 5 more (@nestjs/common, @nestjs/config, @nestjs/core, ...)
npm WARN
npm WARN Could not resolve dependency:
npm WARN peer rxjs@"^6.0.0" from rxjs-for-await@0.0.2
npm WARN node_modules/rxjs-for-await
npm WARN rxjs-for-await@"0.0.2" from @nrwl/node@13.2.2
npm WARN node_modules/@nrwl/node
npm WARN 1 more (@nrwl/tao)
npm WARN
npm WARN Conflicting peer dependency: rxjs@6.6.7
npm WARN node_modules/rxjs
npm WARN peer rxjs@"^6.0.0" from rxjs-for-await@0.0.2
npm WARN node_modules/rxjs-for-await
npm WARN rxjs-for-await@"0.0.2" from @nrwl/node@13.2.2
npm WARN node_modules/@nrwl/node
npm WARN 1 more (@nrwl/tao)
这两个项目都与根项目依赖性有冲突的对等依赖性,但第一个项目使用ERR(无法解决依赖性树)解决,第二个项目使用WARN(覆盖对等依赖性)解决
1条答案
按热度按时间cngwdvgl1#
第一个例子有两个不能同时为真的要求:
slonik@31.4.2
和slonik@"27 - 29"
。slonik
没有两个包都可以使用的版本,并且npm无法构建同一个包的两个不同版本的依赖关系树。它必须解析为满足所有要求的一个版本,如果无法做到这一点,* 因为slonik@"27 - 29"
指定了它接受的版本的上限,npm假设版本30+是已知不工作的,而不是仅仅是不知道工作的。第二个例子有两个要求(令人困惑)也不一致:
rxjs@"^7.0.0"
和rxjs@"^6.0.0"
。插入符号表示允许任何次要版本或错误修复版本,但不允许新的主要版本-因此一个要求是版本7.x.y,另一个是版本6.x.y。然而,由于第二个依赖项没有设置上限,npm无论如何都会尝试解决这个问题,并使用更高的版本号。这可能会导致错误,这就是为什么会有一个警告,但不能保证它会坏掉您可以阅读更多关于npm和语义版本控制here的信息。
由于第一个示例依赖于项目的根目录,因此您可以简单地将正在使用的
slonik
版本更改为^29.0.0
,或者(最好)查找使用slonik
最新版本的@slonik/migrator
。