”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 删除 GitHub 存储库后,Golang 依赖项会发生什么?

删除 GitHub 存储库后,Golang 依赖项会发生什么?

发布于2024-11-04
浏览:728

 What Happens to Golang Dependencies When a GitHub Repository is Removed?

Golang 中的依赖管理:处理删除的 GitHub 存储库

在 Golang 中,与 Node 的 NPM 注册表不同,人们担心 GitHub 所有者可能会删除存储库并使依赖项目变得不可用。这引发了关于依赖项安全性的问题。

Golang 的方法

与 NodeJS 相比,Golang 遵循不同的方法。它允许存储库所有者从 GitHub 中删除他们的包,但它有适当的机制来防止依赖关系被破坏。

模块代理

大多数 Golang 项目使用模块代理默认情况下。这个代理由 Golang 本身提供,在本地缓存下载的模块。当存储库从 GitHub 中删除时,代理仍然可以使用缓存的模块为依赖项目提供服务。

导入路径和 Vanity 导入

每个 Golang 包都有一个导入路径,代表其位置。包所有者可以更改其包的导入路径,从而导致依赖项更改。然而,他们通常使用虚荣导入路径,即使托管站点发生变化,这些路径也保持不变。这可确保依赖项目继续正常运行。

需要执行操作

大多数情况下,从 GitHub 删除依赖包的存储库时无需执行任何操作。如果您没有使用模块代理或包已更改托管站点并使用非常量导入路径,则可能需要调整代码中的导入路径。

结论

虽然 GitHub 存储库删除可能会引起 NodeJS 中的问题,但 Golang 涉及模块代理和虚荣导入路径的方法缓解了这个问题。依赖项目不太可能受到此类删除的影响,从而确保依赖项的安全性和可靠性。

最新教程 更多>
  • 如何在 PHP 中组合两个关联数组,同时保留唯一 ID 并处理重复名称?
    如何在 PHP 中组合两个关联数组,同时保留唯一 ID 并处理重复名称?
    在 PHP 中组合关联数组在 PHP 中,将两个关联数组组合成一个数组是一项常见任务。考虑以下请求:问题描述:提供的代码定义了两个关联数组,$array1和$array2。目标是创建一个新数组 $array3,它合并两个数组中的所有键值对。 此外,提供的数组具有唯一的 ID,而名称可能重合。要求是构...
    编程 发布于2024-11-16
  • 如何解决MySQL中的“1418 (HY000) This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its statements and binarylogging isenabled\”错误?
    如何解决MySQL中的“1418 (HY000) This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its statements and binarylogging isenabled\”错误?
    导入MySQL数据库时,可能会遇到错误“1418 (HY000) at line 10185: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its statements and二进制日志记录已启用(您可能...
    编程 发布于2024-11-16
  • 如何在 MySQL 中以特定格式(如“d-m-Y”)显示日期?
    如何在 MySQL 中以特定格式(如“d-m-Y”)显示日期?
    MySQL 日期格式和表示方法在 MySQL 中创建 DATE 字段时,用户可能会遇到日期存储在非用户中的问题- 友好的格式,如 0000-00-00。本文讨论了将此格式更改为“d-m-Y”或任何其他首选显示格式的可能性。MySQL 的内部日期存储MySQL 在内部将日期存储为三-按照特定公式打包的...
    编程 发布于2024-11-16
  • 为什么我的 PyQt4 按钮点击信号在循环内总是输出相同的值?
    为什么我的 PyQt4 按钮点击信号在循环内总是输出相同的值?
    在循环中连接 PyQt4 中的槽和信号在 PyQt4 中,在槽和信号之间建立连接是事件处理的基本方面。但是,当尝试连接循环内按钮发出的多个信号时,可能会出现意外行为。为了说明此问题,请考虑以下代码:def __init__(self): for i in range(0, 10): ...
    编程 发布于2024-11-16
  • 除了“if”语句之外:还有哪些地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
    除了“if”语句之外:还有哪些地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
    无需强制转换即可上下文转换为 bool您的类定义了对 bool 的显式转换,使您能够在条件语句中直接使用其实例“t”。然而,这种显式转换提出了一个问题:“t”在哪里可以在不进行强制转换的情况下用作 bool?上下文转换场景C 标准指定了四种值可以根据上下文转换为 bool 的主要场景:语句:if、w...
    编程 发布于2024-11-16
  • 如何在整个 MySQL 数据库中执行全局查找和替换?
    如何在整个 MySQL 数据库中执行全局查找和替换?
    查找和替换整个 MySQL 数据库目标是在整个 MySQL 数据库中执行全局查找和替换操作。该问题建议更改以下语法:update [table_name] set [field_name] = replace([field_name],'[string_to_find]','[string_to_r...
    编程 发布于2024-11-16
  • 如何在 C++ 中将字符串转换为双精度数:使用 `std::istringstream` 和 `std::stod` 的简单指南
    如何在 C++ 中将字符串转换为双精度数:使用 `std::istringstream` 和 `std::stod` 的简单指南
    在 C 中将字符串转换为双精度型 在 C 中,可以使用 std::istringstream 和 std::stod 函数将字符串转换为双精度型。#include <sstream> double string_to_double(const std::string& s) { ...
    编程 发布于2024-11-16
  • 如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 识别今天生日的用户使用 MySQL 确定今天是否是用户的生日涉及查找生日匹配的所有行今天的日期。这可以通过一个简单的 MySQL 查询来实现,该查询将存储为 UNIX 时间戳的生日与今天的日期进行比较。以下 SQL 查询将获取今天有生日的所有用户: FROM USERS ...
    编程 发布于2024-11-16
  • 大批
    大批
    方法是可以在对象上调用的 fns 数组是对象,因此它们在 JS 中也有方法。 slice(begin):将数组的一部分提取到新数组中,而不改变原始数组。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index p...
    编程 发布于2024-11-16
  • 为什么 Lambda 比 C++ 中的普通函数更可优化?
    为什么 Lambda 比 C++ 中的普通函数更可优化?
    与普通函数相比,为什么 Lambda 允许增强编译器优化Nicolai Josuttis 的 C 标准库(第二版)断言 lambda 可以与普通函数相比,编译器可以更有效地优化。这一优势源于 lambda 作为函数对象的本质。当 lambda 传递给函数模板时,它会被实例化为专门针对该对象定制的新函...
    编程 发布于2024-11-16
  • Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta:列偏移的删除和恢复Bootstrap 4 在其 Beta 1 版本中引入了重大更改柱子偏移了。然而,随着 Beta 2 的后续发布,这些变化已经逆转。从 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    编程 发布于2024-11-16
  • 如何有效地从 JavaScript 中的对象数组中删除属性?
    如何有效地从 JavaScript 中的对象数组中删除属性?
    从对象数组中高效删除属性处理包含多个对象的数组时,需要从每个对象中删除特定属性。虽然使用 for 循环的简单方法就足够了,但探索利用 ES6 功能和原型操作的替代方法可以带来更高效的实现。ES6 对象解构One这种技术就是 ES6 中引入的对象解构。它可以从对象中提取特定属性并进一步分配给新变量。在...
    编程 发布于2024-11-16
  • Nonce 如何保护 Web 请求免受重放攻击?
    Nonce 如何保护 Web 请求免受重放攻击?
    如何使用 Nonces 保护 Web 请求问题用户找到了一种利用网站评分系统的请求验证系统的方法:复制高价值的 HTTP 请求。这会损害系统的完整性和可靠性。解决方案:实现 Nonce 系统Nonce(使用一次的数字)是通过确保特定请求不被执行来防止请求重放攻击的值。之前做的。这是实现随机数系统的常...
    编程 发布于2024-11-16
  • 在 Go 中使用 WebSocket 进行实时通信
    在 Go 中使用 WebSocket 进行实时通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    编程 发布于2024-11-16
  • 如何有效控制JVM内存消耗?
    如何有效控制JVM内存消耗?
    控制 JVM 内存消耗为了分配适当的资源以获得最佳应用程序性能,设置 JVM 的最大内存至关重要JVM(Java虚拟机)可以利用。这不仅包括堆内存,还包括正在运行的进程的整个内存消耗。为了实现这一点,JVM 提供了两个关键的命令行参数:- Xms:: 此参数指定启动时分配给 JVM 的最小内存量。-...
    编程 发布于2024-11-16

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3