Astro 7 正式发布。直接重做了构建链路:.astro 编译器从 Go 改写为 Rust,Markdown 和 MDX 默认启用 Rust 处理器,渲染引擎换成更快的队列模式,底层再叠加 Vite 8 和 Rolldown

Astro 的生产构建大致分成两段:先打包页面、内容和客户端组件,再执行打包后的代码,为每个预渲染页面生成 HTML。真正耗时的地方会随项目结构变化,可能是 .astro 组件编译,也可能是 Markdown 处理、打包或页面渲染。
Astro 7 路径:
-
新的 Rust 编译器 :原来的
.astro编译器基于 Go,新版本完全使用 Rust 重写,底层使用 Oxc 解析,并用 Lightning CSS 处理 CSS 作用域。 -
Markdown 和 MDX 转向 Rust :默认处理器改为 Sätteri,CommonMark 解析使用
pulldown-cmark,MDX 表达式解析使用 Oxc。 -
队列式渲染成为默认方案 :渲染过程不再依赖原来的递归方式,而是边遍历边输出,减少中间列表和内存开销。官方称单看这部分约快 2.4 倍。
-
升级 Vite 8:Vite 8 用 Rust 编写的 Rolldown 统一替代原有的 esbuild 与 Rollup 组合,进一步加快打包阶段。

1、Markdown 重构内容站
Astro 默认使用 unified 生态处理 Markdown,也就是大家熟悉的 remark、rehype 以及围绕它们建立的大量 JavaScript 插件
大型文档站里,每个文件都要经过解析、多个插件遍历 AST,再序列化为 HTML。文件数量上去后,这条流水线很容易成为构建瓶颈
Astro 7 默认启用基于 Rust 的高性能 Markdown/MDX 处理器 Sätteri。它把 GFM、标题 ID、数学公式、指令、Front Matter、Wiki 链接等常见能力放进原生实现,插件还可以声明自己关心的节点类型,不必每次遍历整棵树。
官方表示,Astro 文档站和 Cloudflare 文档站切换后,单是这项改动就让构建时间减少了 1 分钟以上。
2、Astro 适配 AI 编程工具
AI 编程工具执行 astro dev 时,常见问题是命令一直不退出、重复启动服务器、忘记清理进程,或者只能反复解析终端输出判断服务是否就,
Astro 会等待服务器真正可用,再返回 URL 和进程 ID,随后把服务转入后台。开发者或 AI 编程工具还可以使用 astro dev status、astro dev logs 和 astro dev stop 管理进程。
如果 Astro 检测到自己正运行在 AI 编程工具环境里,还会自动启用后台模式和 JSON 日志。每个开发服务器也会暴露 /_astro/status 健康检查接口。
3、Astro 7 的性能提升
-
模板语法更严格:未闭合标签会直接报错,Rust 编译器也不会再替你自动修正无效 HTML 结构。
-
空白处理改为 JSX 规则 :两个行内元素之间的换行可能不再产生可见空格,需要显式写出空格,或把
compressHTML改回true。 -
检查 Markdown 插件:依赖 remark、rehype、recma 的项目,需要迁移插件或暂时切回 unified。
-
检查 Vite 深层集成:普通项目通常不需要改代码,但依赖 Vite 内部 API 的 Astro 集成和自定义插件,应对照 Vite 8 迁移指南测试。
-
留意
src/fetch.ts:它现在是高级路由的保留文件名。项目中如果已经有同名文件,需要改名或调整fetchFile配置。
4、升级更新 Astro 和官方集成
npx @astrojs/upgrade
Astro 7 展示的方向已经很清楚:JavaScript 框架仍然提供开发体验,底层最耗时的工作则继续交给 Rust