我正在研究具有多层功能的图书馆。我希望开发人员仅能够导入他们需要的部分,即mylib-core
,mylib-feature1
,mylib-feature2
等。每个部分都位于其自己的git repo中。我还想提供一个简单的mylib
包,它公开了一组默认功能,这对于刚接触该库的开发人员而言非常有用。与我要完成的工作非常相似,请参见d3.js 4+版。
我遇到的问题是
显然,您不能在软件包之间共享软件包名称。这是一个问题,因为最好导入所有所需的存储库,然后以mylib
的名称提供所有可用内容。
我没有看到明显的方法来重新导出功能,以构建默认的mylib
程序包。
是否有好的解决方案或更理想的方式来完成我要拍摄的内容?
答案 0 :(得分:3)
回答您的问题,没有惯用的方式来完成您想要的事情。在JavaScript中,导入库并导出其成员不受干扰是很常见的。在Golang中不是这种情况。
我建议您将整个库托管在一个存储库中,并将功能拆分为软件包。 Go编译器将仅编译和使用导入的包。
关于未来的提示,Go与您以前知道的几乎任何其他语言都大不相同