我对 Go 模块如何使用go install.我尝试通过执行安装(https://github.com/joho/godotenv)二进制文件go install github.com/joho/godotenv/cmd/godotenv,我发现它在go.mod. 我迷路了,因为我们没有在代码中使用这个包,并且在运行后go mod tidy它被删除(因为它不是代码)。有人可以解释一下 go 模块的预期行为吗?其次,我如何避免将它添加到go.mod我们只需要安装和执行二进制文件?谢谢。去版本:go version go1.13.4 darwin/amd64
1 回答
qq_遁去的一_1
TA贡献1725条经验 获得超8个赞
命令 go: go.mod 文件:
go 命令每次使用模块图时都会自动更新 go.mod,以确保 go.mod 始终准确反映现实并正确格式化。
go.mod当执行构建时检测到依赖项不准确时,go 工具将自动更新。
当您github.com/joho/godotenv/cmd/godotenv从您的模块安装时,此安装至少需要构建/安装有问题的包(以及它的依赖项,可传递)。
您可以安全地运行go mod tidy以撤消此“一次性”依赖项的记录。
一般来说,如果你想禁止 go 工具更新go.mod文件,你可以使用该-mod=readonly标志,但这会失败go install(“can't load package: package xxx: import lookup disabled by -mod=readonly”)。您可以在此处阅读更多相关信息:Go Wiki:Go 模块:我可以控制 go.mod 何时更新以及 go 工具何时使用网络来满足依赖关系吗?
或者,如果您想避免这种情况,请在模块之外构建/安装您的工具。您可以为此使用“虚拟”模块。
- 1 回答
- 0 关注
- 217 浏览
添加回答
举报
0/150
提交
取消
