<div id="module-unit-notification-container" hidden=""></div> <p>作为 Tailwind Traders 的开发人员,请务必使包保持最新。 这有助于确保我们使用最新的功能和修补程序。 这还有助于我们避免安全漏洞的威胁。 在本单元中,你将了解如何管理 Node.js 项目中的依赖项。 你将了解如何更新包、使用语义版本控制和管理安全问题。</p>
讯享网
在更新包之前,请考虑:
- 更新类型:了解它是次要修复、新功能还是可能会中断代码的重大更改。 语义版本控制可以帮助识别这一点。
- 项目配置:确保项目设置为仅接收需要的更新以避免意外更改。
- 安全性:注意潜在的漏洞。 使用 npm 的审核功能识别和更新有问题的包。
- 测试:确保在更新后通过测试。 如果没有测试,请考虑添加它们。 更新后,应用程序的行为可能会有所不同,测试会验证正确的行为。
语义版本控制是软件开发的关键标准。 这对于发布和使用 npm 包至关重要。 它通过指示新版本中的更改类型来帮助管理更新风险。 版本号包含特定部分来反映这些更改:
对于小型 Node.js 项目,可以自由更新到最新版本。 但对于大型项目,需要仔细考虑更新,并且更新并不总是自动的。 通常,更新较小的依赖项(其自己的依赖项较少)可简化过程。
在更新一个或多个依赖项之前,应配置文件,以便在运行 命令时获得可预测的行为。 Node.js 包含一组符号,允许你定义包的更新方式。
可以在 npm 中使用 或 命令安装包。 这些命令现在大多可互换。 若要更新包,通常使用:
- 最新版本:。
- 特定版本:。
更新过程取决于两个因素:
- 版本参数:如果在 命令中指定了版本号,npm 将提取并安装该特定版本。
- 清单文件条目: 文件包含用于更新依赖项的规则。 例如, 意味着 npm 将提取与此模式匹配的版本。
三个文件控制着依赖项的版本控制:
- :此文件定义要使用的包的版本。 它是项目的清单文件。 它包含项目的元数据,包括依赖项。
- :此文件描述生成的确切树,以便后续安装能够生成相同的树,无论中间经历怎样的依赖项更新。 此文件将被提交到源存储库中。
- :此文件由 CLI 命令创建,类似于 。 这些命令之间的主要区别是用户无法重写在 中指定的包版本。 此外, 文件与较旧版本的 npm(版本 2-4)兼容,而 与 npm 版本 5 及更高版本兼容。 因此,在维护旧版代码库时,你可能会发现 。 大多数开发人员将使用 而非 。 首选使用 的一个例外是守护程序和命令行工具的全局安装,在这种情况下,开发人员希望确保安装指定包的确切版本。
请考虑以下情况:你在代码中使用版本 1.2,之后发布了版本 1.4, 中断了你的代码。 如果此时有人安装了你的应用,他们将获得无法运作的应用。 但是,如果有 文件指定版本 1.2,则将安装该版本。
下面是确定安装包版本的示例:
- 如果 和 文件就版本规则达成一致,则不会发生冲突。 例如,如果 指定 且 指定版本 1.4,则将安装版本 1.4。
- 如果 指定更具体的版本(如 ),则它将替代 该文件,后者指出旧版 1.4。 在这种情况下,将安装版本 1.8.0 或更高补丁版本(如果可用)。
命令用于标识具有较新可用版本的包。 运行时,它会提供以下过时包的列表:
讯享网
输出中的列包括:
每次安装或更新包时,都会获得日志响应,告知已安装的版本以及是否存在任何漏洞。 该日志会列出漏洞。 如果有任何严重或高危别漏洞,应该更新包。
日志响应的示例如下:
要修复问题并应用更新,可以运行 命令。 此命令会列出每个漏洞。
命令会尝试通过升级到不存在该问题的次要版本来解决漏洞。 但是,如果修补程序实际上是在下一个主要版本中,则可能不可用。
在这种情况下,可能需要使用 ,它可以通过更新到主要版本来引入重大变更。 运行此命令需要慎重考虑。 应注意中断性变更,并使用 更新包括漏洞的代码。
漏洞是攻击者可以利用的代码缺陷,他们可利用这些缺陷执行恶意操作,可能会破坏你数据和系统。 及时解决这些漏洞至关重要。
考虑到漏洞的频繁发现,GitHub 具有扫描存储库并自动创建建议升级到更安全版本的 PR 的功能。 定期运行 是识别和修复漏洞的好做法,有助于确保项目的整体安全性。
建议用于更新的工作流为:
- :在启动此更新过程之前,请验证现有测试是否通过。
- :检查正在使用的当前版本中的漏洞。 来自 的信息可能会建议更新到主版本。 如果列出了中断性变更,则应仔细查看这些变更。
- :列出所有已过时的包。 此命令提供“所需版本”、“最新版本”和“位置”列中的信息。
- 使用 进行更新:
- 对于较小的项目( 中的少数依赖项:可以尝试 来更新所有依赖项,然后运行测试。
- 对于大型项目( 中包含许多依赖项:更新单个包或包系列(如 Next.js 和 React),然后运行测试。
- :确认不存在严重或高危漏洞。 如果漏洞仍然存在,请使用 ,且确保包名称和主要版本是 推荐的。
- 再次 。
- 签入 和 。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/141003.html