Astro 7.0 发布:Rust 编译器与构建提速成主角

2026 年 6 月 4 日,Astro 官方发布了 Astro 7.0。这一版的主题非常纯粹——速度。团队把最耗时的构建环节从 JavaScript 迁移到原生 Rust 实现,官方基准测试显示整体构建时间提升了 15%-61%,部分站点甚至快了一倍以上。

官方基准到底快了多少

官方按站点类型给出了更细的对比,值得关注的不只是"平均快了多少",而是哪些环节最受益

场景 旧版构建时间 Astro 7 构建时间 提升
小型博客(50 页) 约 40s 约 25s 约 37%
文档站(800 页) 约 6 分钟 约 3 分钟 约 50%
大型内容站(5000 页) 约 20 分钟 约 8 分钟 约 60%

可以看到,页面越多收益越大。对每天在 CI 里构建几十次的大型文档站,一天能省下好几个小时的流水线时间;小项目虽然绝对值省得少,但配合新的缓存机制,本地预览和部署体验同样有可感知的提升。

升级成本几乎为零

官方提供了升级命令,几行就能把项目从 v5/v6 带上来:

npx @astrojs/upgrade

多数项目升级后无需改配置就能享受新构建管线。如果你在旧版本里手写过 vite.build.rollupOptionsvite.optimizeDeps,Vite 8 的兼容层会自动把它们翻译成 Rolldown 的等价配置;个别插件不兼容时,启动会明确报错而不是静默降级——这也是新编译器的风格:该报错就报错

Vite 8 与 Rolldown 打包器

Astro 7 升级到 Vite 8,这是 Vite 近年来最重要的版本更新。核心变化是换用了 Rolldown——一个用 Rust 编写的打包器,同时取代 esbuild 与 Rollup,官方基准中比 Rollup 快 10-30 倍,同时兼容原有插件 API。对绝大多数项目来说,升级后无需改动配置就能获得更快的构建;Vite 8 还自带兼容层,自动把旧的 esbuild/rollupOptions 配置转换为 Rolldown 等价配置。

Rust 重写的编译器与 Markdown 管道

  • 新的 .astro 编译器:从原来的 Go 版本完全重写为 Rust,基于 oxc 解析与 Lightning CSS 作用域处理。它不再像旧编译器那样"偷偷帮你修正 HTML",未闭合的标签、未终止的属性现在会直接报错——更严格,也更符合预期。
  • Markdown/MDX 全 Rust 化:默认管道切换到 Rust 编写的 Sätteri 处理器,把 Astro 文档站与 Cloudflare 文档站的构建时间缩短了一分钟以上。GFM 表格、智能标点、数学公式等原本需要插件的能力现已内建。

对内容团队来说,最直观的变化在 Markdown:以前要装 remark-gfmrehype-katex 才有的表格和公式,现在开箱即用,写文档的人不用再维护一整套插件清单。

渲染引擎与缓存

  • 队列式渲染(Queued Rendering):从实验转为默认渲染引擎,用队列加单循环替代递归渲染,表达式密集的页面约快 2.4 倍,内存占用也更低。
  • 路由缓存转正 + CDN 缓存提供方Astro.cacherouteRules 成为稳定 API,并新增 Netlify、Vercel、Cloudflare 的实验性 CDN 缓存提供方——把缓存指令下发到主机边缘网络,命中时完全不调用服务端函数。

用 routeRules 把整站标记为"可缓存"只要几行配置:

// astro.config.mjs
export default defineConfig({
  routeRules: {
    '/': { cache: { ttl: 3600 } },
    '/blog/**': { cache: { ttl: 86400 } },
  },
});

配合 CDN 提供方,缓存命中时请求在边缘直接返回,源站和 Serverless 函数都不再被调用——对文档站和营销页是实打实的成本下降。

高级路由与 AI 增强

Astro 7 新增 src/fetch.ts 入口,可以完全掌控请求管道(兼容 Cloudflare Workers / Deno / Bun 风格),也能与 Hono 中间件组合。面向 AI 开发,还支持后台开发服务器astro dev --background,可被 AI 代理自动识别)与结构化 JSON 日志——这是 Astro 路线图上呼声最高的功能之一。

适合谁升级

  • 文档站 / 内容站:Markdown 管道全 Rust 化收益最大,几百篇文档的构建时间能省下一分钟以上;
  • CI 频繁构建的团队:构建提速直接缩短发布周期,15%-61% 的提升在每天多次部署时尤其可观;
  • 还在 v5 的老项目:建议先跑到 v6 验证插件兼容性,再升 v7,避免一次跨两个大版本。

还有一个务实的建议:升级前先在分支上把 astro check 和构建各跑一遍,对比旧版本的产物大小与耗时,确认没有回归再合入主干。Astro 7 把"严格报错"作为默认行为后,过去被旧编译器悄悄修正的写法会在新版本里直接暴露出来,这些恰恰是升级时最值得先清理的技术债。

16IDC 观察

Astro 7 的路线非常清晰:把性能压到极限,同时把开发体验开放给 AI 代理。对内容型站点、文档站、博客这类"Markdown 重度"项目,这版的价值尤其明显。想用 Astro 搭建个人博客,可以参考Astro 博客搭建指南;关于静态站与动态 CMS 的选择,可以看静态站点与动态 CMS 对比。更多建站技术内容请查看建站技术分类。

参考:Astro 官方发布说明 https://astro.build/blog/astro-7/