go get 安装 Iris 失败需先初始化模块:执行 go mod init your-project-name,再 go get github.com/kataras/iris/v12@latest;iris-contrib 扩展需手动安装且不自动引入;vendor 不包含间接依赖,须显式 require 或临时 import;Iris v12 无官方 CLI,替代用 air 等工具。

go get 安装 Iris 会失败?先确认 Go 版本和模块模式
直接 go get github.com/kataras/iris/v12 在 Go 1.21+ 且未启用模块时大概率报错:no required module provides package github.com/kataras/iris/v12。这不是 Iris 的问题,而是 Go 模块系统强制要求显式初始化。
必须在项目根目录执行:
-
go mod init your-project-name(名称建议与 import 路径一致,如example.com/api) - 再运行
go get github.com/kataras/iris/v12@latest(带@latest可避免缓存旧版本) - 如果项目已存在
go.mod但提示找不到包,检查是否误删了replace或exclude条目
iris-contrib 包不是自动安装的,得手动加
Iris 官方把中间件、工具、模板引擎等拆到了 iris-contrib 组织下,比如 JWT 验证要用 github.com/iris-contrib/middleware/jwt,模板渲染要用 github.com/iris-contrib/template/html——这些都不会随主框架自动拉取。
常见扩展安装方式:
- JWT 中间件:
go get github.com/iris-contrib/middleware/jwt - Session 支持:
go get github.com/iris-contrib/middleware/session - HTML 模板:
go get github.com/iris-contrib/template/html - 注意:所有
iris-contrib下的包都需显式go get,且版本号通常不带/v12后缀(它们本身不遵循主库的 v12 版本号)
vendor 目录里缺 iris-contrib?go mod vendor 不递归处理依赖
go mod vendor 默认只 vendor 主模块直接依赖的包,而 iris-contrib 包往往被间接引用(比如你在 main.go 里 import 了 jwt,但没在 go.mod 显式声明),导致 vendor 后部署失败,报错 cannot find package "github.com/iris-contrib/middleware/jwt"。
解决办法只有两个:
- 在任意 .go 文件中临时写一行
import _ "github.com/iris-contrib/middleware/jwt",再跑go mod tidy && go mod vendor - 或手动编辑
go.mod,在require块里补上对应行(推荐,更可控)
用 go install 安装 CLI 工具?Iris 没有官方 CLI
别搜 iris-cli 或 go install github.com/kataras/iris/iris —— Iris 从 v12 开始彻底移除了内置 CLI 工具。网上教程里提到的 iris new、iris run 全是旧版(v11 及以前)遗留内容,现在运行会报 command not found。
替代方案很简单:
- 新建项目就手建
main.go+go mod init - 热重载用第三方工具,比如
air:go install github.com/cosmtrek/air@latest,然后在项目根目录跑air - 别依赖“框架自带脚手架”,Iris 的轻量哲学决定了它不提供这一层抽象
真正容易被忽略的是:Iris 的 v12 主模块和所有 iris-contrib 子模块的 Go 版本要求不完全一致,有些 contrib 包最低要 Go 1.22,而主框架支持到 1.19。升级前务必看对应仓库的 go.mod 文件第一行。


















