我正在研究具有多层功能的图书馆。我希望开发人员能够仅导入他们需要的部分,即mylib-coremylib-feature1mylib-feature2等。每个部分都位于其自己的git repo中。我还想提供一个简单的mylib包,该包提供了一组默认功能,这对于刚接触该库的开发人员而言非常有用。请参阅d3.js 4+版,以获得与我要完成的功能非常相似的功能。

我遇到的问题是

  • 显然您不能在软件包之间共享软件包名称。这是一个问题,因为最好导入所有所需的存储库,然后在mylib名称下简单地提供所有可用内容。
  • 为了构建默认的mylib包,我没有看到一种明显的方法来重新导出功能。

  • 是否有好的解决方案或更理想的方式来完成我要拍摄的内容?

    最佳答案

    回答您的问题,没有惯用的做您想要的事情的方式。在JavaScript中,导入库并导出其成员不受干扰是很常见的。在Golang中并非如此。

    我建议您将整个库托管在一个存储库中,并将功能拆分为软件包。 Go编译器将仅编译和使用导入的包。

    对于 future 的提示,Go与您以前知道的几乎任何其他语言都大不相同😅

    关于go - 是否有将包装拆分为模块化组件的标准做法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53890537/

    10-16 17:37