如何解决npm中的对等依赖警告?

4

我有一个应用程序的示例package.json文件,

    dependencies : {
        P1 : “^1.0.0”  // has a peer dependency of p3 v1
        P2 : “^1.0.0”  // has a peer dependency of p3 v2
    }

P1和P2在P3上具有同级依赖,但版本不同。 (例如,P1对P3 V1具有同级依赖,而P2对P3 V2具有同级依赖)

(我无法访问P1 P2源代码。)

是否有办法在我的应用程序的package.json中解决这种情况,以免显示警告消息?


1
为了让人们帮助您,知道P1、P2和P3是什么将会很有帮助。 - Shubham Khatri
P1、P2和P3是完全随机的软件包,它们的内容完全无关紧要。OP有两个需要不同版本另一个随机包的随机包。答案应该与软件包无关。 - coblr
2个回答

2

我的先前回答未能意识到依赖项和对等依赖项之间的区别。对于那些可能也没有意识到这种区别的人,另一个回答描述得很好:

简而言之:peerDependencies 用于公开给使用代码(预期使用)的依赖项,而不是不公开的“私有”依赖项,后者仅是实现细节。

如果 P1 和 P2 确实都对不兼容的 P3 版本进行了对等依赖,则需要找到具有与 P3 兼容的对等依赖的 P1 和 P2 版本,或放弃使用 P1 或 P2 中的任一项。


-1

更新:此答案仅适用于常规依赖项,不适用于对等依赖项。请参阅我的新答案,了解差异的描述以及P3是对等依赖项的情况的答案。

我猜你正在运行旧版本的npm。更新的npm版本应该可以很好地处理同一依赖项的多个版本。

如何更新Node.js和npm到下一个版本?


-1 这完全没有用。我已经有最新版本,但是我有12个警告,涉及各种webpack版本:例如:@2 || 3@^3.1.0@^2.0.0 || ^3.0.0@2.0.0 || ^3.0.0 || ^4.0.0。你的回答只适用于问题“如何更新node和npm到下一个版本?” - coblr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接