Revel框架“卸载”实为清理CLI二进制、模块缓存和项目依赖引用:先删$GOPATH/bin/revel,再执行go clean -modcache,最后检查并清除go.mod中revel依赖行,重装@latest CLI并新建项目验证。

Revel 框架没有“卸载”概念——它本质是一组 Go 包 + CLI 工具,不存在系统级注册或全局安装痕迹。所谓“彻底卸载”,实际是清理三类残留:CLI 二进制、模块缓存、项目依赖引用。直接删掉就完事,但顺序和范围错了反而引发 revel run 找不到命令或 go mod 冲突。
删掉 revel CLI 二进制文件
Go 的 go install 会把可执行文件放到 $GOPATH/bin(或 $GOBIN)下,不是系统路径。不删它,新装的 CLI 可能被旧版本覆盖或冲突。
- 运行
which revel(macOS/Linux)或where revel(Windows),确认路径,比如/home/user/go/bin/revel - 直接删掉该文件:
rm $(which revel)或手动删除对应路径下的revel文件 - 验证是否清空:
revel version应报command not found
清除 Go 模块缓存与本地包
旧版 github.com/revel/revel 包可能还躺在 $GOPATH/pkg/mod 或 $GOCACHE 里,导致 go mod tidy 拉错版本,甚至编译时混用 v0.19 和 v1.1.0 的 API。
- 删模块缓存:
go clean -modcache - 删构建缓存(可选但推荐):
go clean -cache - 检查项目里是否还有残留引用:打开
go.mod,确认github.com/revel/revel行已删除或注释;若有,手动删掉整行再go mod tidy
重装 CLI 并验证框架兼容性
新版 Revel CLI(≥v0.25)必须搭配 GO111MODULE=on 和显式 go.mod,否则 revel run . 会卡在 “not found in GOPATH”。
- 确保模块开启:
go env -w GO111MODULE=on - 重装 CLI:
go install github.com/revel/cmd/revel@latest(注意不是@v1.1.0,@latest已指向支持 v1.1.0 框架的 CLI) - 新建测试项目验证:
revel new testapp && cd testapp && revel run .—— 必须传参.,否则旧版路径推断逻辑可能复活 - 启动后终端必须出现
Running in dev mode和Watching for changes,缺一不可
最容易被忽略的是:你删了 CLI,但没碰 go.mod 里的 revel 依赖行,或者忘了 go clean -modcache,结果 revel run 看似成功,实则加载的是缓存里的旧框架代码,路由 404 或模板编译错误全都不报真实位置。动手前先 go list -m all | grep revel 看一眼,有输出就得清。

















