【问题标题】:How to resolve Peer dependency warnings in npm?如何解决 npm 中的对等依赖警告?
【发布时间】:2018-08-31 19:08:31
【问题描述】:

我的应用程序有一个示例 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 不显示警告消息?

【问题讨论】:

  • 了解什么是 P1、P2 和 P3 会很有帮助,以便人们帮助您
  • P1、P2 和 P3 是完全随机的包,它们是什么完全无关紧要。 OP 有 2 个随机包,需要另一个随机包的不同版本。答案应该与包无关。

标签: javascript reactjs npm dependencies


【解决方案1】:

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

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

How can I update Node.js and npm to the next versions?

【讨论】:

  • -1 这根本没用。我有最新版本,并且针对各种 webpack 版本有 12 个警告:示例:@2 || 3@^3.1.0@^2.0.0 || ^3.0.0@2.0.0 || ^3.0.0 || ^4.0.0。您的回答仅适用于“如何将 node 和 npm 更新到下一个版本?”的问题
【解决方案2】:

我之前的回答没能意识到依赖和对等依赖的区别。对于那些可能还没有意识到差异的人another answer describes it well

TL;DR:peerDependencies 用于向消费代码公开(并预计将被使用)的依赖项,而不是未公开且只是实现细节的“私有”依赖项。

如果 P1 和 P2 确实都对不兼容的 P3 版本具有对等依赖关系,您将需要找到具有兼容 P3 对等依赖关系的 P1 和 P2 版本,或者放弃使用 P1 或 P2。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 2015-02-25
    • 2018-09-18
    • 2021-09-10
    • 2021-09-18
    • 1970-01-01
    • 2019-05-09
    相关资源
    最近更新 更多