如何用dart包防止gitub repo扩散?

时间:2015-10-17 13:09:50

标签: dart dart-pub

假设我想要创建一个包的集合,例如与烹饪相关。 我将有一个名为 cooking 的核心软件包,然后我想要多个烹饪套餐:

  • 烹饪墨
  • 烹饪印
  • 烹饪泰

每个人都会使用烹饪。也许将来会创建更常见的包。设置此方法的方法是什么 在github中的结构,这样你就不会被迫创建一个 每个单独的回购,但仍然允许客户项目拉 只是他们需要的包裹。

包可以引用github包中的路径吗?

从pub依赖关系页面,它们显示了如何引用git:

dependencies:
  cooking:
    git:
      url: git://github.com/munificent/cooking.git
      ref: some-branch

但理想情况下我想:

dependencies:
  cooking-indian:
    git:
      url: git://github.com/munificent/cooking.git
      ref: some-branch
      # path relative to cooking.git that has pubspec.yaml
      path: cooking-indian

有没有办法让一个包含N个包的github repo只能通过pub选择一些子集?

1 个答案:

答案 0 :(得分:2)

您始终可以拥有一个顶级git存储库,其中包含单独发布的子文件夹中的所有包。 Pub并不强制要求每个包都是回购 - 只要各个包都遵守pub package layout format

如果您使用私人存储库,您可能需要setup a private pub host而不是依靠github来获取。

但是pub目前不支持直接从git repos的子树中获取。如果您想投入精力实现此功能,可以通过利用git的sparse checkout功能来实现。