升级 Astro
本指南介绍了如何更新你的 Astro 版本和相关依赖,如何了解版本之间的变化,以及如何理解 Astro 的版本控制系统和相应的文档更新。
有哪些变化?
“有哪些变化?”章节Astro 的最新版本是 v5.12.6。
你可以在 Astro 的更新日志中找到所有更改的详尽列表,并在我们的主要版本升级指南中找到升级到每个新的主要版本的重要说明。
升级到最新版本
“升级到最新版本”章节使用你的包管理器,通过一个命令将你的项目的 Astro 版本和所有官方集成更新到最新版本
# Upgrade Astro and official integrations togethernpx @astrojs/upgrade
# Upgrade Astro and official integrations togetherpnpm dlx @astrojs/upgrade
# Upgrade Astro and official integrations togetheryarn dlx @astrojs/upgrade
手动升级
“手动升级”章节要手动将 Astro 和集成更新到当前版本,请使用适合你的包管理器的命令。
# Example: upgrade Astro with React and Partytown integrationsnpm install astro@latest @astrojs/react@latest @astrojs/partytown@latest
# Example: upgrade Astro with React and Partytown integrationspnpm add astro@latest @astrojs/react@latest @astrojs/partytown@latest
# Example: upgrade Astro with React and Partytown integrationsyarn add astro@latest @astrojs/react@latest @astrojs/partytown@latest
安装特定版本号
“安装特定版本号”章节要安装特定版本的 Astro或集成,请使用适合你的包管理器的命令。
npm install astro@4.5.3 @astrojs/react@3.0.10
pnpm add astro@4.5.3 @astrojs/react@3.0.10
yarn add astro@4.5.3 @astrojs/react@3.0.10
文档更新
“文档更新”章节本文档会针对每个次要版本和主要版本发布进行更新。当添加新功能或现有用法发生变化时,文档将更新以反映 Astro 的当前行为。如果你的项目没有更新,你可能会注意到某些行为与最新的文档不符。
新功能在文档中会标注其添加的具体版本号。这意味着,如果你没有更新到 Astro 的最新版本,某些已记录的功能可能无法使用。在尝试使用新功能之前,请务必检查 Added in:
版本号,并确保你的项目已更新!
如果你尚未升级到 Astro 的最新主版本,你可能会发现 Astro 文档与你的项目行为之间存在显著差异。我们强烈建议你尽快升级到 Astro 的当前主版本。旧版本的代码和文档均不受支持。
升级指南
“升级指南”章节在每个主要版本发布后,你都会找到一个升级指南,其中包含有关重要更改和升级项目代码的说明。
Astro 的主要文档页面始终与最新发布的 Astro 版本保持一致。它们不描述或比较先前版本的工作方式,也不突出显示更新或更改的行为。
请参阅下方的升级指南,以获取有关新旧版本变化的说明。升级指南包含了所有可能需要你更改自己代码的内容:破坏性变更、弃用、功能移除和替换,以及更新的使用指南。Astro 的每次更改都包含一个“我该怎么做?”部分,以帮助你成功更新项目代码。
旧版文档(未维护)
“旧版文档(未维护)”章节Astro 旧版本的文档不进行维护,但会作为静态快照提供。如果你无法升级项目但仍希望查阅指南和参考资料,请使用这些版本的文档
语义化版本控制
“语义化版本控制”章节Astro 尽可能地遵循语义化版本控制,这是一套开发人员用来确定如何为发布版本分配版本号的规则。语义化版本遵循一种可预测的模式,告知用户从一个版本到下一个版本可以预期的变更类型。
语义化版本控制为软件版本号强制使用 X.Y.Z
的模式。这些值分别代表主要(X)、次要(Y)和补丁(Z)更新。
补丁(Patch)变更
“补丁(Patch)变更”章节补丁变更是破坏性最小的变更。它们不会改变你使用 Astro 的方式,更新时也无需更改你自己的代码。
当 Astro 发布一个“补丁”版本时,最后一个数字会增加。(例如 astro@4.3.14
-> astro@4.3.15
)
发布补丁的原因可能包括
- 不改变 Astro 功能的内部变更
- 重构
- 性能改进
- 测试覆盖率的增加或改变
- 与已声明的文档和预期行为保持一致
- 改进日志记录和错误信息。
- 发布失败后的重新发布。
补丁变更还包括大多数错误修复,即使在用户利用了现有的意外或不希望出现的行为的情况下也是如此。
次要(Minor)变更
“次要(Minor)变更”章节次要版本主要引入你可能想尝试的新功能和改进,但不需要对你的代码进行任何更改。在次要版本中,某些现有功能也可能被弃用(标记为在未来版本中删除,但仍可继续使用),让你有机会为它们的最终移除做准备。
次要版本包括的变更如下
- 弃用现有功能/选项,并警告它们将在即将到来的主要版本中被移除。
- 引入新功能。
- 在集成钩子中引入新选项。
- 在
astro/app
中引入新功能,主要用于创建新的适配器。
一个次要版本也可能同时包含较小的补丁变更。
主要(Major)变更
“主要(Major)变更”章节主要版本将包含对至少某些现有代码的破坏性变更。这些破坏性变更总是在 Astro 的“升级到 vX”指南中有记录。
主要版本允许 Astro 对内部逻辑以及预期的行为和用法进行重大更改。文档将只更新以反映最新版本,而旧文档的静态、未维护快照将作为尚未升级的旧项目的历史记录提供。
主要版本包括的变更如下
- 移除先前已弃用的功能。
- 更改现有功能。
- 更改集成钩子中的现有选项。
- 更改
astro/app
中的现有选项和功能,主要用于创建新的适配器。
一个主要版本也可能包含一些非破坏性的变更和改进,这些变更和改进通常会在次要版本或补丁版本中单独发布。
例外情况
“例外情况”章节-
实验性功能。发布不遵循语义化版本控制的 Astro 版本,允许 Astro 开发人员在开发实验性功能时拥有最大的灵活性来探索,甚至彻底改变方向。因此,这些功能的行为可能会在次要和补丁变更中被破坏。
这些功能通常伴随着一个正在进行的、公开的意见征求(RFC)阶段 3。我们期望 Beta 用户关注更新,并在讨论中留下早期反馈,以帮助指导这些功能的开发。
一旦这些功能脱离实验期,它们将遵循正常的语义化版本控制约定。
-
文档的改进(例如参考和错误信息)。它们是为
docs
仓库从源码构建的。这使得在文档源码内容存储在主astro
仓库的情况下,Astro 能够快速更新文档修复和改进。
Node.js 支持与升级策略
“Node.js 支持与升级策略”章节支持
“支持”章节- Astro 支持 Node.js 的最新维护 LTS 版本。
- Astro 支持 Node.js 的当前活跃 LTS 版本
- Astro 可以支持 Node.js 的奇数版本。
升级
“升级”章节以下规则定义了 Astro 何时可能弃用、放弃或添加对 Node.js 版本的支持
- 当下一个偶数版本的 Node.js 发布时,奇数版本的 Node.js 可能会被弃用和/或放弃。这一变更可能在 Astro 的次要版本中发生,经过 Astro 核心团队决定的合理延长支持期后。
- 升级 Node.js 的最低维护 LTS 版本(在同一主版本范围内,例如从
v18.14.*
到v18.20.*
)可能在 Astro 的次要版本中发生。- 安全例外:如果 Node.js 中一个影响 Astro 的安全漏洞被披露并修复,核心团队可以在一个补丁版本中提升维护 LTS 的最低版本。
- 升级 Node.js 的次要或主要版本(非维护 LTS)只会在 Astro 的主要版本中进行。
- 安全例外:如果 Node.js 中一个影响 Astro 的安全漏洞被披露并修复,核心团队可以在一个次要版本中提升最低版本。
扩展维护
“扩展维护”章节核心团队将仅为安全修复为前一个主要版本提供扩展维护。这意味着如果当前的主要版本是 v4.*
,核心团队将向后移植安全修复并发布一个新的 v3.*
版本。