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

use*_*952 6 dart dart-pub

假设我想创建一个包的集合,比如说与烹饪有关.我将有一个叫做烹饪的核心包,然后我想要多个烹饪包:

  • 烹调墨西哥
  • 烹调印度
  • 烹饪泰

每个人都会使用烹饪.也许将来会创建更常见的包.在github中设置此结构的方法是什么,这样您就不必为每个创建一个单独的repo,但仍然允许客户端项目只提取他们需要的包.

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

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

dependencies:
  cooking:
    git:
      url: git://github.com/munificent/cooking.git
      ref: some-branch
Run Code Online (Sandbox Code Playgroud)

但理想情况下我想:

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
Run Code Online (Sandbox Code Playgroud)

有没有办法让一个github repo与N个包,其中只有一些子集可以通过pub选择?

lor*_*non 2

您始终可以拥有一个顶级 git 存储库,其中包含单独发布的子文件夹中的所有包。Pub 并不强制要求每个包都是一个存储库 — 只要各个包遵循pub 包布局格式即可。

如果您使用私有存储库,您可能需要设置一个私有 pub 主机,而不是依赖 github 进行获取。

然而 pub 目前不支持直接从 git repos 的子树中获取。如果您想投入精力来实现此功能,您可以利用 git 的稀疏结帐功能来实现。