2

我正在编写 4 个 dart 库 A、B、C 和 D,它们都处于开发早期,所以我还不想在 pub 上发布它们。

情况也是如此,只有 A、B 和 C 是公共库,它们都依赖于 D,而 D 应该是这三个库的私有库。我该如何处理这样的情况?

我可以在本地开发机器上使用 pub 为 A、B 和 C 安装库 D,而它没有发布吗?以及如何在没有发布 D 的情况下发布 A、B 和 C,因为如果 A、B 或 C 不使用 D,则认为 D 不是特别有用?

我已经阅读了入门指南包结构文档,但似乎都没有涵盖这种情况,即如何管理私有库。还有这个SO question,但用户在解决她的问题后没有回答。

4

1 回答 1

6

默认情况下,依赖项解析为 Pub,但您可以覆盖它以从 URL、git 和本地路径导入包。

例如,以下是导入本地包的语法:

dependencies:
  transmogrify:
    path: /Users/me/transmogrify

有关更多信息,请参阅发布依赖项。

至于您问题的另一部分,我看不出 A、B 和 C 如何在逻辑上成为公共包并依赖于私有包。我会发布所有的包,并且只包含在 D 的描述中,这并不意味着作为一个独立的包,而只是作为 A、B 和 C 的辅助包。

您还可以将 A、B 和 C 发布到 Pub 并在 github 或公共 URL 上托管 D,并在 pubspec 中为 A、B 和 C 指定相关的 URL 依赖项(有关正确的语法,请参见上面的链接)。这可能会使 D 和其他库之间的区别更加清晰,尽管实际上它们仍然是公开可用的包。

于 2013-06-06T14:48:58.537 回答