是否有将包装拆分成模块化组件的标准做法?

I'm working on a library with multiple layers of functionality. I want developers to be able to import only the parts they need, ie mylib-core, mylib-feature1, mylib-feature2, etc. Each lives in its own git repo. I'd also like to provide a simple mylib package which exposes a default set of functionality which is useful for developers new to the library. See d3.js version 4+ for something very similar to what I'm trying to accomplish.

The problems I've run into are

  1. Apparently you can't share a package name between packages. This is a problem because it would be nice to import all the desired repos and then simply have everything available under the mylib name.

  2. I don't see an obvious way to re-export functionality, in order to build the default mylib package.

Are there good solutions or a more idomatic go way to accomplish what I'm shooting for?

Answering your question, there is no idiomatic way of doing what you want. It is common in JavaScript to import a library and export its members without interference. This is not the case in Golang.

I advise you to host your whole library under a single repo, and split the functionality to packages. The Go compiler will only compile and use the imported packages.

And a tip for the future, Go is very different than almost any other language you previously know