我正在写4个dart库A,B,C和D,它们都处于早期开发阶段,所以我不想在pub上发布它们。
同样的情况是,只有A,B和C是公共库,它们都依赖于D,这些库应该只对这三个库是私有的。我如何管理这样的情况?
我可以使用pub在我的本地开发机器上安装A,B和C库D,但它没有发布吗?如何在没有发布D的情况下完成A,B和C的发布,如果A,B或C没有使用D,那么D是不是特别有用?
我已阅读getting started guide和package structure文档,但似乎都没有涵盖此类情况,即如何管理私有库。还有this SO问题,但用户在解决问题后没有回答。
答案 0 :(得分:6)
默认情况下,依赖项会解析为Pub,但您可以覆盖它以从URL,git和本地路径导入包。
例如,以下是导入本地包的语法:
dependencies:
transmogrify:
path: /Users/me/transmogrify
有关详细信息,请参阅Pub Dependencies。
就问题的其他部分而言,我看不出A,B和C在逻辑上如何成为公共包并依赖于私有包。我会发布所有的包,只是包含在D的描述中,它不是一个独立的包,只是作为A,B和C的帮助包。
您还可以将A,B和C发布到Pub并在github或公共URL上托管D,并在pubspec中为A,B和C指定相关的URL依赖关系(请参阅上面的链接以获取正确的语法) 。这可能会使D与其他库之间的区别更加清晰,但实际上它们仍然是公开可用的包。