【问题标题】:handling peer (or nested?) dependencies处理对等(或嵌套?)依赖
【发布时间】:2022-12-15 11:28:15
【问题描述】:

这是我第一次遇到需要(我认为)处理我正在使用的包中的对等依赖项的场景。

我正在增加我的应用程序的依赖性,这是我的场景:

  1. 我使用包 A 作为依赖项
  2. 包 A 将包 B 作为对等依赖项并且还使用包 C
  3. 包 C 使用包 B 作为“正常”依赖项
  4. 我自己使用包 B 作为直接依赖

    在我的项目中更新包 B 后,包 C 抱怨包 B 中的一些中断导入

    我阅读了有关该主题的文章,但老实说我不太明白该如何解决。

    我是否应该将我的应用程序中的包 B 升级到不破坏任何东西的程度? (考虑到我的观点是更新我的依赖关系,如果这甚至可能的话,其中一些需要在 X 点有 B)

    我是否应该尝试更新包 A 的依赖项(其中 B 作为对等依赖项存在,并且还使用 C,这是抱怨的那个?)

    我有什么选择?

    非常感谢

【问题讨论】:

    标签: node.js npm dependencies package.json


    【解决方案1】:

    通常,最好避免让一个包既是同一应用程序的直接依赖项又是对等依赖项。在这种情况下,您有多种解决问题的方法:

    • 如果可能,请尝试将应用程序中的包 B 升级到不会破坏任何内容的最新版本。这将确保您所有的依赖项都使用相同版本的包 B,这应该可以防止任何冲突。

    • 如果您无法在不破坏某些东西的情况下升级包 B,您可以尝试更新包 A 的依赖项。这可能涉及将包 C 更新为与您在应用程序中使用的包 B 版本兼容的版本.

    • 或者,您可以尝试将包 B 作为您的应用程序的直接依赖项删除,并仅将其用作包 A 的对等依赖项。这可能涉及更新您的代码以从包 A 导入包 B,而不是直接导入它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 2012-03-29
      • 2016-08-21
      • 2022-01-26
      • 1970-01-01
      • 2019-10-18
      • 1970-01-01
      相关资源
      最近更新 更多