Web Analytics

Go Monorepo 实战:用 Vanity URL 管理多模块

Monorepo 的困境 你的团队在使用 monorepo。所有 Go 服务都放在一个 Git 仓库里: monorepo/ ├── go/ │ ├── auth/ │ │ └── go.mod # module github.com/org/monorepo/go/auth │ ├── config/ │ │ └── go.mod # module github.com/org/monorepo/go/config │ └── logger/ │ └── go.mod # module github.com/org/monorepo/go/logger ├── proto/ ├── deploy/ └── README.md 三个 Go 模块,一个仓库。这是常见的模式——共享 CI、原子化的跨模块修改、一致的版本管理。 但 import path 又长又丑,还嵌套得很深: import ( "github.com/org/monorepo/go/auth" "github.com/org/monorepo/go/config" "github.com/org/monorepo/go/logger" ) 而且绑定在 GitHub 上。要迁移到 GitLab?所有 import 都得改。 你想要 vanity URL: import ( "go.company.com/auth" "go.company.com/config" "go.company.com/logger" ) 但问题来了:传统的 go-import meta 标签是一个 import path 映射一个 repo。你的 monorepo 是一个 repo 里有三个模块。怎么搞? ...

2026年7月13日 · Tony Bai