内容来自对 chatgpt 的咨询
原因
go mod tidy卡住可能有以下几个原因:
网络问题:go mod tidy时需要从网络下载依赖,如果网络不稳定或者因为某些原因访问某些资源地址很慢,可能导致此命令延迟或者卡住。可以尝试使用Go的官方代理或其他信赖的代理,例如设置环境变量 export GOPROXY=https://goproxy.io,direct。
并发问题:go mod tidy在处理时默认会开启并发任务来节省时间,如果需要拉取的依赖模块数量特别多或者计算机资源(比如 CPU 或者内存)不足,可能会导致此命令运行过慢。
解决方案
- 你可以在执行 go mod tidy 命令之前启动 go 的 proxy,比如:
export GOPROXY="https://proxy.golang.org,direct"
- 可以设置 GOMODCACHE 环境变量,这个环境变量用于指定模块缓存的路径:
export GOMODCACHE="/path/to/cache"
- 如果还是无法解决,可以尝试清空模块缓存,然后再次尝试:
go clean -modcache
- 可以试着减少并发任务的数量,使用
GOMODMAXPROCS
环境变量来限制go mod tidy
的并发任务数量,比如:
export GOMODMAXPROCS=1
如果以上方法均无法解决问题,那可能需要对项目进行逐一的依赖排查,看是否有某个特定的依赖导致了问题,这可能需要更深入的调查和研究。