多版本控制
- 依赖安装
# 安装 asdf (版本管理)
brew install asdf
# 安装 direnv (目录环境变量管理)
brew install direnv
# 将 direnv 挂载到 zsh (写入 ~/.zshrc)
echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc
source ~/.zshrc- go 版本控制,在项目根目录下面创建
.tool-versions,写入需要的 go 版本
text
golang 1.24.0- go 代理、权限校验,在项目根目录下面创建
.envrc,写入需要的 go 版本
B 站版本
bash
#!/usr/bin/env bash
# 自动切换 Go 版本
use asdf
# 基础配置
export GO111MODULE="on"
export GOPATH="${HOME}/go"
export GOBIN="${GOPATH}/bin"
# 确保本地 bin 目录在 PATH 中
export PATH="${GOBIN}:${PATH}"
# 代理配置:公司内部 > 外部镜像 > 直连
export GOPROXY="http://goproxy.bilibili.co,https://goproxy.cn,direct"
# 私有库配置
export GOPRIVATE="buf.bilibili.co,*.internal.co"
export GONOPROXY="buf.bilibili.co"
export GONOSUMDB="*.bilibili.co"
# 启用 Go 模块的 vendor 模式(可选)
# export GOVENDOREXPERIMENT="hono"
# 设置 Go 编译缓存(提高编译速度)
export GOCACHE="${HOME}/.cache/go-build"
# 验证配置
log_info() {
echo "[INFO] $1"
}
log_info "Go version: $(go version)"
log_info "GOPROXY: ${GOPROXY}"
log_info "GOPRIVATE: ${GOPRIVATE}"私有版本
bash
#!/usr/bin/env bash
# 自动切换 Go 版本
use asdf
# 基础配置
export GOPATH="${HOME}/go"
export GOBIN="${GOPATH}/bin"
export PATH="${GOBIN}:${PATH}"
# 代理配置:公共镜像 > 直连
export GOPROXY="https://goproxy.cn,direct"
# 明确不设置私有库配置
export GOPRIVATE=""
export GONOPROXY=""
export GONOSUMDB=""
# 对于开源项目,建议启用校验和数据库
export GOSUMDB="sum.golang.org"
# 设置编译缓存
export GOCACHE="${HOME}/.cache/go-build"
# 验证
echo "[INFO] Go version: $(go version)"
echo "[INFO] Using public GOPROXY: ${GOPROXY}"direnv allow
