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}">
下面的参考资源中,有非常全面的文章可以看。