使用添加新依赖项时,dep ensure -add <package>
我看到dep
添加了包的完整存储库,而不仅仅是我需要的部分。
例如,我添加了aws-sdk-go并将dep ensure
87MB 的文件放入我的供应商文件夹中,即使我只使用 AWS Secrets Manager 服务。
使用添加新依赖项时,dep ensure -add <package>
我看到dep
添加了包的完整存储库,而不仅仅是我需要的部分。
例如,我添加了aws-sdk-go并将dep ensure
87MB 的文件放入我的供应商文件夹中,即使我只使用 AWS Secrets Manager 服务。
要解决此问题,您需要定义[prune]
确定哪些文件和目录可以被视为不必要的设置,从而自动从 vendor/ 中删除。
当前可用的选项如下:
unused-packages
表示应修剪未出现在包导入图中的目录中的文件non-go
修剪 Go 不使用的文件go-tests
修剪 Go 测试文件出于谨慎考虑,dep 非可选地保留了可能具有法律意义的文件。
默认情况下禁用修剪选项。但是,生成Gopkg.toml
通孔dep init
将添加行以在根级别启用go-tests
和修剪选项。unused-packages
[prune]
go-tests = true
unused-packages = true
可以为每个项目定义相同的修剪选项。需要一个额外的 name 字段,并且与[[constraint]]
and一样[[override]]
,应该是源 root,而不仅仅是任何导入路径。
[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
。然而,由于dep
Go 文件所扮演的角色只有一个明确的模型,而非 Go 文件必然不属于该模型,因此没有可比的安全通用定义。