登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-15 19:03:33 155浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《如何让 dep 确保删除未使用的 Go 文件、依赖项或包》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

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

例如,我添加了 aws-sdk-go 和 dep,以确保 将 87MB 的文件放入我的供应商文件夹中,即使我只使用 AWS Secrets Manager 服务。


解决方案


要解决此问题,您需要定义 [prune] 设置,以确定哪些文件和目录可以被视为不必要,从而自动从供应商/中删除。

当前可以使用以下选项:

  • unused-packages 表示应修剪未出现在包导入图中的目录中的文件
  • non-go 修剪 go 不使用的文件
  • go-tests 修剪 go 测试文件

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

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

[prune]
  go-tests = true
  unused-packages = true

可以为每个项目定义相同的修剪选项。需要额外的名称字段,与 [[constraint]][[override]] 一样,应该是 source 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 文件必然不属于该模型,因此不可能有可比较的通用安全定义。

终于介绍完啦!小伙伴们,这篇关于《如何让 dep 确保删除未使用的 Go 文件、依赖项或包》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>