如何让 dep ensure 删除未使用的 Go 文件、依赖项或包

使用添加新的依赖项时,dep ensure -add <package>我看到dep添加了包的完整存储库,而不仅仅是我需要的部分。

例如,我添加了aws-sdk-go并将dep ensure87MB 的文件放入我的 vendors 文件夹中,即使我只使用 AWS Secrets Manager 服务。


三国纷争
浏览 139回答 1
1回答

森林海

要解决这个问题,您需要定义[prune]一些设置来确定哪些文件和目录可以被认为是不必要的,从而自动从 vendor/ 中删除。当前提供以下选项:unused-packages指示应删除未出现在包导入图中的目录中的文件non-go修剪 Go 未使用的文件go-testsprunes Go 测试文件出于谨慎考虑,dep 非选择性地保留可能具有法律意义的文件。默认情况下禁用修剪选项。但是,生成过Gopkg.toml孔将添加行以在根级别dep init启用go-tests和修剪选项。unused-packages[prune]&nbsp; go-tests = true&nbsp; unused-packages = true可以为每个项目定义相同的修剪选项。需要一个额外的名称字段,并且与[[constraint]]和一样[[override]],应该是源根目录,而不仅仅是任何导入路径。[prune]&nbsp; non-go = true&nbsp; [[prune.project]]&nbsp; &nbsp; name = "github.com/project/name"&nbsp; &nbsp; go-tests = true&nbsp; &nbsp; non-go = false几乎所有的项目都可以不设置任何项目特定的规则,并在全局启用以下剪枝规则:[prune]&nbsp; unused-packages = true&nbsp; go-tests = true设置non-go = true也通常是安全的。然而,由于depGo 文件所扮演的角色只有一个明确的模型,而非 Go 文件必然落在该模型之外,因此没有可比的安全性通用定义。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go