gpt4 book ai didi

javascript - Monorepo 中的依赖项

转载 作者:行者123 更新时间:2023-12-04 15:09:05 25 4
gpt4 key购买 nike

在 monorepo 中,如果您在一个包中有依赖项,您可以在另一个包中使用该依赖项而不将其添加到该包中吗?为了更清楚,请检查以下布局。

Project
|-packages
|- packageA
|- package.json (Here let say I have lodash dependency)
|- index.js
|- packageB
|-package.json (I haven't added lodash here.)
|- index.js
那么,我可以在 packageB 的 index.js 中导入 lodash 还是必须在其中添加它?

最佳答案

如果 packageB使用 lodash,您应该在 package.json 中列出 lodash packageB 的文件.如果你不这样做,坏事可能会发生。例如,考虑以下情况:

  • lodash 已从 packageA 中删除.在您的情况下,您提到 packageA将 lodash 列为依赖项。然而,如果你重构了packageA在不再需要 lodash 的地方,您可能会认为它未使用而将其删除。如果 packageB依靠packageA安装 lodash,然后 packageB由于缺少依赖关系而中断。
  • packageB未安装 packageA .在不知道您的软件包包含什么的情况下很难确定,但现在或以后您(或其他人)可能会安装 packageB不安装 packageA .然后你会遇到同样的情况,没有安装 lodash 并且 packageB会打破。
  • packageA更新到 lodash 的新主要版本。如果 packageB不再与新的主要版本 lodash 兼容,它可能会崩溃。如果 packageB 则不会有问题。指定它自己对 lodash 的依赖,因为您可以根据最佳情况一起或单独更新它们。

  • 其他情况也可能发生,这些只是几个例子。
    注意,您可以在 packageA 中将 lodash 指定为对等依赖项。和 packageB让消费应用程序安装 lodash,这样你就不必在两个包中都安装它,但这并不能真正简化你的 monorepo 或消费应用程序中的事情。

    关于javascript - Monorepo 中的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65535349/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com