为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
三国纷争 2023-05-15 14:30:35
使用添加新的依赖项时,dep ensure -add <package>我看到dep添加了包的完整存储库,而不仅仅是我需要的部分。例如,我添加了aws-sdk-go并将dep ensure87MB 的文件放入我的 vendors 文件夹中,即使我只使用 AWS Secrets Manager 服务。
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

要解决这个问题,您需要定义[prune]一些设置来确定哪些文件和目录可以被认为是不必要的,从而自动从 vendor/ 中删除。

当前提供以下选项:

  • unused-packages指示应删除未出现在包导入图中的目录中的文件

  • non-go修剪 Go 未使用的文件

  • go-testsprunes Go 测试文件

出于谨慎考虑,dep 非选择性地保留可能具有法律意义的文件。

默认情况下禁用修剪选项。但是,生成过Gopkg.toml孔将添加行以在根级别dep init启用go-tests和修剪选项。unused-packages

[prune]

  go-tests = true

  unused-packages = true

可以为每个项目定义相同的修剪选项。需要一个额外的名称字段,并且与[[constraint]]和一样[[override]],应该是源根目录,而不仅仅是任何导入路径。


[prune]

  non-go = true


  [[prune.project]]

    name = "github.com/project/name"

    go-tests = true

    non-go = false

几乎所有的项目都可以不设置任何项目特定的规则,并在全局启用以下剪枝规则:


[prune]

  unused-packages = true

  go-tests = true

设置non-go = true也通常是安全的。然而,由于depGo 文件所扮演的角色只有一个明确的模型,而非 Go 文件必然落在该模型之外,因此没有可比的安全性通用定义。


查看完整回答
反对 回复 2023-05-15
  • 1 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信