如何使用 go modules 删除已安装的包

How to remove an installed package using go modules

我已经使用 go 模块安装了一个包(go get in Go 1.13),现在我想删除它。 documentation there is nothing about this and in go get docu 两者都没有。

手动从 go.mod 中删除软件包并不能解决问题,因此它仍保留在 go.sum。

我应该如何以干净的方式删除包?

找到了 https://go.dev/blog/using-go-modules#removing-unused-dependencies

go mod tidy

所以基本上,一旦没有在任何包中导入包,您就可以执行 go mod tidy,它将安全地删除未使用的依赖项。

并且如果您正在销售依赖项,那么运行下面的命令可以将模块更改应用到供应商文件夹中:

go mod vendor

@jesugmz 的回答没有说​​,如果你想删除 go modules 中当前正在使用的包怎么办。

因此,如果您正在使用 go modules(您的项目中有一个 go.mod 文件)并且您想要删除当前正在使用的包,请检查 $GOPATH/pkg/mod/ 目录并简单地删除该包名为 package@version.

例如,如果您安装了 github.com/some/project 软件包,您应该 运行 以下命令:

rm -rf $(go env GOPATH)/pkg/mod/github.com/some/project@v1.0.0

您可以在 go.mod 文件中找到使用包版本。