如何防止使用dart软件包的gitub repo扩散?
问题描述:
假设我想创建一个包的收集,比如烹饪。 我将有一个核心的包叫做烹饪然后我想多烘焙包:如何防止使用dart软件包的gitub repo扩散?
- 烹饪,墨西哥
- 烹饪印
- 烹饪泰
每个人都会用做饭。未来可能会创建更常见的软件包。在github中设置这个 结构的方法是什么,这样你就不必为每个结构创建一个 单独的回购,但仍然允许客户端项目只需将它们所需的包装拉出 。
软件包可以引用github包中的路径吗?
从他们展示如何引用混帐酒吧依赖性页:
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库一些子集可以通过pub选择?
答
您始终可以拥有一个顶级git存储库,其中包含单独发布的子文件夹中的所有包。 Pub没有要求每个包都是回购 - 只要单个包遵守pub package layout format。
如果您正在使用私人回购,您可能需要setup a private pub host而不是依赖github进行提取。
但是,pub目前不支持直接从git repos的子树中获取数据。如果你想投入努力来实现这个功能,你可以通过利用git的sparse checkout功能来实现。
如果您希望代码可以从pub发布,但仍然希望开发通过git获取特定版本,仍然会出现扩散。在git中放入多个包意味着您不能使用pubspec git选择器功能,因为pub需要该包作为回购的根。 – user1338952
这个请求有一个[未解决的问题](https://github.com/dart-lang/pub/issues/1305),但今天没有人正在处理它。 我们在[build repo](https://github.com/dart-lang/build)中使用了这种模式,并且它一直运行良好,虽然在版本发布到pub之前还有一些关于travis测试的棘手部分。 总是可以使用发布到pub的特定版本,git依赖不是锁定到特定版本的唯一方法。 – Nate