Astro 4.0 隆重登场! 新增 API、更快的构建速度、重新设计的文档,以及一个独特的全新 Astro 开发工具,以新颖而激动人心的方式增强您的本地开发环境。
什么是 Astro? Astro 是一个用于构建内容驱动型网站的 Web 框架,包括博客、营销和电子商务网站。如果您需要一个加载速度快、SEO 表现出色的网站,那么 Astro 非常适合您。
此版本亮点包括
Astro 4.0 现已在 npm 上提供。访问 astro.new 即可在浏览器中直接试用 Astro 4.0,或者在终端中运行以下命令以在新的本地项目中开始使用:
# Create a new Astro 4.0 project:npm create astro@latest
大多数现有代码库升级到 Astro 4.0 不会遇到任何问题。 我们有意将此版本的 API 更改保持在最低限度,大部分更改都集中在集成 API 中。请查阅升级指南,以获取完整的操作说明和各项更改的详细分解。
Astro 开发工具栏
Astro 4.0 引入了开发工具栏——一种强大的新方式,可使用 Astro 增强和自定义您的本地浏览器开发体验。 检查您的页面,捕获棘手的可访问性问题,并使用自定义应用程序和第三方工具扩展工具栏本身。

Astro 开发工具栏仅在开发过程中出现在浏览器中,绝不会包含在最终的生产构建中。工具栏会隐藏在页面底部,直到您需要时才会显示。将鼠标悬停在附近,工具栏就会弹出,并提供多种不同的应用程序:
检查: 突出显示页面上的交互式 UI 组件岛。此工具栏应用程序旨在利用 Astro 独特的岛屿架构。突出显示页面上的岛屿可以帮助您了解哪些元素是交互式的,哪些是轻量级的静态 HTML。从那里,您可以查看属性并点击在代码编辑器中直接打开组件。
审计: 运行一系列测试,审计页面是否存在常见的可访问性问题。无需离开浏览器即可立即捕获没有 alt
文本的图像或配置错误的 ARIA 角色属性。
Sentry: 我们与 Sentry 合作设计了此工具栏的初始版本。Sentry 是领先的 Web 应用程序监控平台,他们很高兴能与我们合作开发一款全新的 Astro 独立调试工具。请明天(12 月 6 日)回来查看更多关于我们合作关系和 Spotlight.js 正式发布的信息!
Storyblok: Storyblok(我们的官方 CMS 合作伙伴)也发布了一个工具栏应用程序,作为其官方 Astro 集成的一部分。在 Astro 4.0 中,所有 Storyblok 用户都应该在其工具栏中看到一个新的应用程序,该应用程序提供了快速访问 Storyblok + Astro 的文档、教程和社区资源的途径。预计未来会有更多 CMS 功能推出。
第三方应用程序: Astro 开发者和第三方集成作者可以使用新的开发工具栏 API 来构建他们自己的嵌入式 JavaScript 开发应用程序。这为构建开发工具解锁了一个全新的基础功能,支持以下特性:
- 直接在浏览器中显示测试和 linting 错误。
- 使用 localtunnel 将您的开发环境开放给公共互联网。
- 轻松访问外部工具,如 Squoosh 图像优化器。
- 内部团队管理面板可自动化常见任务,例如在开发过程中切换用户账户。
在Astro 集成目录中发现新的发布周工具栏应用程序,并学习如何构建您自己的。在接下来的几个月里,我们将继续通过新功能和第三方 API 增强工具栏。另外,您可以更新您的配置以在项目中禁用应用程序工具栏,并运行 astro preferences disable devToolbar --global
以在您的机器上全局禁用所有项目的工具栏。
国际化 (i18n) 路由
作为内容驱动型网站的 Web 框架,我们经常被问及国际化。作为 Web 开发者,处理国际化(通常称为“i18n”)可能意味着您的代码库会增加许多额外的复杂性:路由、重定向、翻译、相对链接处理……
Astro 4.0 引入了新的国际化路由功能,可帮助您以更低的复杂性构建全球可访问的网站。利用 Astro 的新功能,例如自动 i18n 路由和用于处理 URL 的低级辅助函数。
Astro 新的内置路由支持允许您通过集中配置定义您的区域设置
import { defineConfig } from "astro/config"export default defineConfig({ i18n: { defaultLocale: "en", locales: ["en", "es", "pt-br"] }})
通过以下方式自定义您的行为:
- 当某些区域设置中没有内容时的回退
- 在 URL 中添加区域设置名称的前缀行为
- 常见区域设置和语言代码的别名
对于带有服务器端渲染 (SSR) 的 'server'
构建,Astro 会自动检测用户的首选语言,以便您可以进一步定制内容、添加重定向或进一步自定义路由处理。
国际化路由支持最初作为 Astro 3.5 中的实验性功能添加。今天,它将进入 Astro 4.0 的稳定版本。阅读新的Astro 国际化指南,了解更多并试用新 API。
增量内容缓存(实验性)
Astro 4.0 引入了增量内容缓存作为一项实验性新功能,可显著提高大型网站的构建性能。
随着代码库的增长,网站代码库通常需要更长的构建时间。静态网站由于每次构建都重新生成相同的页面,因此这个问题更加严重。在 Astro 4.0 中,我们决定引入缓存来帮助减少 astro build
命令中重复、不必要的工作量。
在真实的 Astro 文档代码库上启用内容缓存后,astro build
中的相关步骤从 133.20 秒降至 10.46 秒,速度提高了约 92%。端到端构建时间从 4 分 58 秒缩短到刚刚超过 60 秒,总构建时间加快了 80%。我们在其他实际场景中也看到了类似令人印象深刻的结果。

增量内容缓存与内容集合 API 挂钩。由于 Astro 拥有用于访问和管理集合内内容的 API,我们的构建能够使用内部构建清单安全地跟踪集合内的更改。Astro 可以在每次构建时检查缓存并重用未更改的内容条目。
增量内容缓存的实验性支持最初在 Astro 3.5 中以“内容集合构建缓存”的名称引入。此功能在 4.0 中仍处于实验阶段,我们将继续最终确定缓存行为。如果您想尝试实验性功能,请立即在您的项目配置中启用 experimental.contentCollectionCache
以获得更快的构建速度。
新的视图转换 API
Astro 3.0 向世界引入了视图转换 (View Transitions),作为一种新的 API,仅通过服务器渲染的 HTML 和最少的客户端 JavaScript 即可构建交互式、类应用程序的体验。借助 Astro 中的视图转换,您可以执行以下操作:
- 在不同页面之间动画导航,而无需发布臃肿的 SPA。
- 在页面之间持久化有状态 UI,例如视频播放器和地图。
- 自动将一个通用元素从一个页面变形到另一个页面。
- 滑动和淡入淡出元素,为您的页面增添更多个性。
自视图转换首次推出以来,我们持续改进了对其的支持。Astro 4.0 通过更多可配置的 API 和令人兴奋的新用例,将视图转换提升到新的水平:
- 表单: 视图转换现在可以与静态 HTML 表单和动态客户端表单组件交互,在表单提交时触发转换,而不是链接导航。
- 预取: 现在,您可以指定链接应在鼠标悬停、点击或在页面上可见时进行预取。您还可以单独启用/禁用链接的预取。
- 路由播报器: 针对辅助技术内置的功能。
- 一个低级
navigate()
JavaScript API,您可以使用它手动触发导航。 - 一个完整的生命周期事件系统,您可以接入它来自定义加载。您甚至可以使用它将内置的元素交换算法替换为您自己的算法。
我们将继续倡导视图转换的强大功能,以及它们仅通过服务器渲染的 HTML 和少量 JavaScript 即可提供重型客户端 SPA 体验的能力。更多功能和改进正在路上!
Astro 核心团队在此向 @martrapp 表示衷心感谢,感谢他们为在 Astro 4.0 中引入这些新 API 所做的贡献和工作。阅读更新的视图转换指南或新的教程,了解如何在您自己的项目中使用这些新 API。
重新设计的日志记录
Astro CLI 在 4.0 版本中焕然一新,带来了重新设计的日志记录体验。亮点包括:
- 移除不必要的日志记录: 以前,一些常见场景会导致重复日志和其他不必要的日志。
- 更简洁的错误: 现在错误在终端中占用的行数更少,这意味着在较小的终端中出现问题时滚动会更少。
- 精简的堆栈跟踪: 默认情况下,错误不再在每个堆栈跟踪中包含无用的 Vite 运行时内部信息。
结果是,在新版 Astro 4.0 中,Astro 的 dev
和 build
命令更容易阅读、解析和调试。
重新设计的文档
Starlight 是 Astro 的官方文档模板。它包含了我们过去两年在大规模构建和管理 Astro 文档网站时收集到的所有最佳实践和模式。
今天,我们完成了一个循环:docs.astro.build 现在由 Starlight 提供支持!

既然我们自己已经切换到 Starlight,我们对自己的文档网站所做的任何改进都将回馈并改善所有人的 Starlight。得益于 Astro 文档,Starlight 现在拥有 Expressive Code 等功能和新的 Algolia 插件。未来还将有新的组件,例如我们的交互式文件树和多项选择测验。
我们在此感谢 Astro 核心维护者 @TheOtterlord 为完成此次升级所做的重大贡献和领导。访问新文档网站:docs.astro.build。如果您想了解更多信息,请浏览代码库或加入我们的 Discord!
开始使用 Astro 4.0
Astro 4.0 现已在 npm 上提供。访问 https://astro.new/ 即可在浏览器中试用 Astro,或者在终端中运行以下命令以在新的项目中开始使用:
# Create a new Astro 4.0 project:npm create astro@latest
正在将现有项目升级到 Astro 4.0?请查看v4.0 升级指南,获取所有详细信息和针对每项更改的单独升级指导。