Golang: Command: Vanity Import Paths

 12th August 2022 at 3:01pm

Vanity Import Path 是指一个自定义域名(而不是 VCS 服务商域名)的 import path:

// 使用:
import "emperror.dev/errors"

// 而不是:
import "github.com/emperror/errors"

"emperror.dev/errors" 就是一个 vanity import path。

好处是:

  • 符合 Go 的仓库分布式管理哲学
  • 使包作者不被一个 VCS 厂商(比如 GitHub)绑定

具体作法是,包作者需要提供一个 HTTP 服务,页面 <header> 需要包含这些 meta tag:

<meta name="go-import" content="emperror.dev/errors git https://github.com/emperror/errors">
<meta name="go-source" content="emperror.dev/errors https://github.com/emperror/errors https://github.com/emperror/errors/tree/master{/dir} https://github.com/emperror/errors/blob/master{/dir}/{file}#L{line}">

下面的参考资源中,有非常全面的文章可以看。

参考