npm 修补程序版本上的peerDependency冲突不匹配

h7appiyu  于 2022-12-04  发布在  其他
关注(0)|答案(1)|浏览(309)

我遇到了与此Op npm peerDependency version conflict基本相同的问题,但没有人回答他。
我的项目(我将称之为my-api)依赖于我创建的一个私有库(让我们称之为package A),而这个包A有另一个私有库作为peerDependency(让我们称之为package B)。只有当我的项目安装了包A peerDependencies中列出的包B的EXACT版本时,一切才能正常工作。这很奇怪,因为包A列出了他的依赖关系如下:

{
"name: "package-a", 
"peerDependencies": {"package-b": "^0.0.8"}
}

而我在项目中安装的相依性是"package-b": "^0.0.9",^0.0.9不应该满足^0.0.8吗?
以下是错误消息:

While resolving: my-api
npm ERR! Found: @a/package-b@0.0.9
npm ERR! node_modules/@a/package-b
npm ERR!   @a/package-b@"^0.0.9" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer @a/package-b@"^0.0.8" from @a/package-a@4.0.0
npm ERR! node_modules/@a/package-a
npm ERR!   @a/package-a@"^4.0.0" from the root project

npm错误信息对我来说是如此的混乱!
我想我可以尝试使用0.x.x而不是^0.0.8,但我仍然认为它应该按原样工作。
编辑:刚尝试将package-a相依性设定为:“B包:0.x.x”,但仍然出现相同的错误

xpszyzbs

xpszyzbs1#

原来我的问题是因为当包的主版本为0时,NPM不遵循相同的规则。
因此,基本上对于NPM来说,0.0.9^0.0.8完全不同,但1.0.9^1.0.8的有效补丁版本。
要避免此问题,只需启动主版本为1的软件包

相关问题