作者:Erika、Matt Kane、Matthew Phillips
Astro 5.0 正式推出!此次更新引入了 Astro Content Layer,可以从任何来源加载内容,以及 Server Islands,将缓存的静态内容与动态个性化内容相结合。接下来将详细介绍这些强大的新功能及更多内容。
什么是 Astro?
Astro 是一个用于构建内容驱动网站的网络框架,包括博客、营销和电子商务。如果需要一个加载快速且具备良好 SEO 的网站,Astro 是理想选择。
发布亮点
- 内容层(Content Layer)
- 服务器岛屿(Server Islands)
- 简化的预渲染
- 类型安全的环境变量
- Vite 6
- 实验性功能
可前往 astro.new 直接在浏览器中体验 Astro 5.0,或使用以下命令启动新项目:
npm create astro@latest
要升级现有项目,可以使用自动化的 @astrojs/upgrade CLI 工具。也可以手动运行包管理器的安装命令进行升级。
推荐升级
npx @astrojs/upgrade
手动升级
npm install astro
pnpm install astro
yarn add astro
欲了解详细的升级指导,请查看升级指南。
内容层
Astro 是内容驱动网站的最佳框架,Astro 5.0 使其更加强大。Astro Content Layer 提供了一种灵活且可插拔的内容管理方式,提供统一且类型安全的 API,以定义、加载和访问项目中的内容。
随着网站的增长,使用 Markdown 文件在 Git 仓库中组织内容可能变得不够实用。内容层可以将所有内容整合到一个友好的、类型安全的数据存储中,随时在网站中使用。通过内容层,可以:
- 使用内置加载器从任何磁盘位置加载内容。
- 定义自定义加载器,从任何 API 中快速提取内容。
- 使用社区构建和第三方加载器,从 Storyblok、Cloudinary 等流行来源提取内容。
在 Astro 5 中,内容收集的构建速度提高了多达 5 倍,内存使用减少了 25-50%。即使进行了重大改动,内置的向后兼容性意味着大多数用户无需更改现有代码。
服务器岛屿
Server Islands 是岛屿架构概念的演变,Astro 在这一领域引领潮流。通过服务器岛屿,可以在同一页面上结合高性能的静态 HTML 和动态的服务器生成组件。
这意味着无论是完全静态的内容,还是由数据库动态支持的内容,都可以通过服务器岛屿实现最佳的缓存策略。用户无论是否登录,都能即时看到页面的关键部分,因为这些内容在 Edge CDN 上进行了缓存。
简化的预渲染
Astro 5.0 简化了预渲染选项,合并了混合和静态选项,使得在不需要繁琐配置的情况下即可实现动态渲染。仍然可以获得静态生成的 .html 文件,但若设置某页面为 prerender = false,Astro 将动态切换输出模式,允许使用需要服务器端渲染的功能。
类型安全的环境变量
新版本中的 astro:env 模块提供了一种类型安全的方式来定义应用程序所需的环境变量,帮助开发者更好地管理配置。
Vite 6
Astro 5 是首批集成 Vite 6 的框架之一,Vite 6 引入了新的环境 API,增强了开发体验。
实验性功能
Astro 5 还推出了一些新的实验性功能,用户可以通过启用实验性标志进行预览,未来将会稳定发布。
更多改进与修复
除了这些新功能,Astro 5.0 还包括许多小功能和错误修复,详细信息请查看发布说明。
感谢所有贡献者的支持,期待 Astro 5.0 带来更好的开发体验。如有任何问题或反馈,欢迎在 Bluesky、Twitter、Mastodon 或 Discord 上联系。
Astro 5.0 将为内容驱动的网站开发带来新的机遇,值得期待!