我遇到了与此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”,但仍然出现相同的错误
1条答案
按热度按时间xpszyzbs1#
原来我的问题是因为当包的主版本为0时,NPM不遵循相同的规则。
因此,基本上对于NPM来说,
0.0.9
与^0.0.8
完全不同,但1.0.9
是^1.0.8
的有效补丁版本。要避免此问题,只需启动主版本为1的软件包