Astro,一个用于构建内容驱动型网站的 Web 框架,已经宣布了Astro 6 Beta版本,引入了一个完全重新设计的开发服务器、一流的 Cloudflare Workers 支持,以及几个新的稳定 API,包括实时内容集合和内容安全策略支持。
Astro 6 Beta 版对开发人员使用该框架的方式带来了重大改变,包括基于 Vite 的Environment API重构的开发服务器、用于实时数据更新的稳定实时内容集合,以及内置的 CSP 支持。该版本还包括一些重大的破坏性变更,如需要使用 Node 22+并移除几个弃用的 API。
Astro 6 中的一大特性是完全重新设计的 astro dev 开发服务器。新服务器利用 Vite 的 Environment API 在与生产环境相同的运行时中运行应用程序,缩小了开发和部署环境之间的差距。以前,在本地工作的代码一旦部署可能会有不同的行为,而且平台特定的特性通常在部署后才能测试。通过统一开发和生产代码路径,Astro 团队已经发现并修复了许多仅存在于开发或仅存在于生产中的微妙错误。
新的开发服务器使之成为可能的最完整的例子是对 Cloudflare Workers 的支持。有了 Astro 6 Beta, astro dev 现在可以使用 workerd 运行应用程序,这是 Cloudflare 的开源 JavaScript 运行时,这与在生产环境中支持 Cloudflare Workers 的运行时相同。这意味着开发者现在可以直接针对真实的平台 API 进行开发,而不是模拟或 polyfills。当使用 Cloudflare 支持运行 astro dev 时,开发者现在可以访问 Durable Objects、KV Namespaces、R2 Storage、Workers Analytics Engine 和环境变量,所有这些都支持热模块替换。
现在可以直接使用 cloudflare:workers 模块访问 Cloudflare 绑定,如 beta 博客文章所示:
import { env } from "cloudflare:workers"; const kv = env.MY_KV_NAMESPACE; await kv.put("visits", "1"); const visits = await kv.get("visits");
在 Astro 5.10 中还在试验性的实时内容集合,现在在 Astro 6 中已经稳定。这些建立在 Astro 的类型安全内容集合之上,可以实时更新数据,而不需要重新构建,这使得它们非常适合频繁更新数据源,如实时股票价格或库存。该 API 旨在让已经使用 Astro 的构建时内容集合的人感到熟悉,但对实时数据请求的实际情况进行了显式的异常处理。
内容安全策略支持,之前在 Astro 5.9 中是实验性的,现在已经稳定。CSP 是 Astro 获得最多投票的特性请求,它有助于保护网站免受跨站脚本和其他代码注入攻击。该功能在所有 Astro 渲染模式中工作,并与所有官方适配器兼容,自动生成 CSP 头或元元素,包括脚本和样式的哈希。
Astro 6 包括几个重大破坏性变更,因为团队清理了弃用的 API。最重要的变化包括移除 Astro.glob() ,要求 Node 22 或更高版本,以及更新 Cloudflare 适配器,移除 Astro.locals.runtime ,转而直接访问平台 API。团队已经发布了一个全面的升级指南,详细说明了每个破坏性变更的迁移步骤。
该版本在社区内引发了一些讨论,reddit 上的一位用户对长长的破坏性变更列表发表了评论(特别提到了早期的 alpha 版本):
哇。真是一个巨大的破坏性变更列表……
这引起了 Astro 核心维护者Sarah Rainsberger的回应:
大多数变更至少不会影响每个人!
她继续解释了有这样一个详细的破坏性变更列表的理由:
……我坚信,任何可能破坏某人项目的东西都应该包含在这一页上……无论那个“项目”是一个常规的静态网站,还是你构建的主题,或者一个复杂的集成。
在Hacker News上,评论者强调 Astro 是最早支持 Cloudflare 的 Vite 插件的框架之一:
Cloudflare 发布了他们的 vite 插件,使得使用 vite env API 的框架可以毫不费力地在 workerd 中运行……Nextjs 还没有支持,添加对 Sveltekit 支持的草案 PR 已经被搁置,直到下一个主要版本,Astro 刚刚在他们 3 天前的 beta 6.0 版本中添加了支持。
与其他元框架如Next.js和 SvelteKit 相比,Astro 以其专注于内容驱动型网站和默认最小化客户端 JavaScript 而脱颖而出。Next.js 强调 React 和全栈能力,SvelteKit专注于 Svelte 生态系统,而 Astro 仍然与框架无关,通过其孤岛架构官方支持React、Vue、Svelte和其他 UI 框架。
Astro 是一个开源 Web 框架,旨在构建包括博客、营销网站和电子商务在内的内容驱动型网站。该框架通过最小化客户端 JavaScript,尽可能在构建时或按需在服务器上渲染内容,强调性能。
原文链接:
https://www.infoq.com/news/2026/02/astro-v6-beta-cloudflare/





