必须先用 go version 检查 Go 版本,Fiber v2 要求 ≥1.21、v3 要求 ≥1.24;再核对 go.mod 中的 go 声明行,两者均需满足目标版本;最后用 go list -m 验证实际拉取的 Fiber 版本。

必须先检查 Go 版本,否则 go get 可能静默失败或拉取不兼容的旧版依赖。
用 go version 确认当前版本
直接运行命令查看:
go version
输出类似 go version go1.22.6 darwin/arm64。重点看主版本号(如 1.22)和次版本号(如 6),Fiber v2 要求 ≥ 1.21,v3 要求 ≥ 1.24。
- 若显示
command not found,说明 Go 未安装,需先下载官方二进制包或用go install golang.org/dl/go1.24@latest安装版本管理器 - 若版本低于
1.21(比如go1.18),go get github.com/gofiber/fiber/v2会失败或降级到不维护的 v1 分支 - 别信
go env GOPATH或GOROOT输出——它们可能残留旧路径,go version才是唯一可信依据
查 go.mod 里的 go 声明行
打开项目根目录的 go.mod,找开头这行:
go 1.21
它表示该模块声明的最低兼容 Go 版本。注意:这个值不是当前环境版本,只是约束;如果本地 go version 低于此值,go build 会直接报错。
- 若
go.mod写的是go 1.24,但本地是go1.22,编译会失败,哪怕 Fiber 没用到新特性 - 若你打算用 Fiber v3,必须确保
go.mod和本地go version都 ≥1.24;生产项目目前仍推荐 v2,对应go 1.21+ - 升级 Go 后,建议运行
go mod tidy,避免缓存旧go.sum导致依赖解析异常
验证 go get 是否真拉到了目标版本
执行安装命令后,别只看终端没报错就以为成功:
go get github.com/gofiber/fiber/v2
然后立刻检查 go.sum 或运行:
go list -m github.com/gofiber/fiber/v2
输出应为类似 github.com/gofiber/fiber/v2 v2.52.0。若显示 v1.14.7 或无 /v2 后缀,说明模块解析失败,大概率是 Go 版本不够或 GO111MODULE 未开启。
-
GO111MODULE=on必须启用(Go 1.16+ 默认开启,但某些 CI 或旧 shell 可能关着) - 绝对不要用
go get -u——它会强制升级所有间接依赖,可能把fiber/v2升成fiber/v3(当前仍是测试阶段) - 如果
go list报no matching versions,八成是 Go 版本太低,回退到上一步再核对
最容易被忽略的是:本地 go version 和 go.mod 声明不一致时,go get 表面成功,实际拉的是降级兼容版,后续调用 fiber.New() 可能 panic 或行为异常——得进 go/pkg/mod 里翻源码才能发现。











