Astro 5.0 全新发布:内容层与服务器岛屿

831 阅读3分钟

参考链接:astro.build/blog/astro-…

作者: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 将为内容驱动的网站开发带来新的机遇,值得期待!