Astro 在 2026 年中段的节奏很快。6 月 22 日发布 7.0,7 月 16 日又发 7.1——不到一个月两个大版本。
7.0 换了底层引擎,7.1 补了日常控制力。如果你在用 Astro,这次升级的幅度值得认真对待——不是修修补补的小版本,是从编译器到打包器到 Markdown 管线的全面换血。
7.0:三个 Rust 组件的叠加
Astro 7.0 的性能提升不是靠某个单项优化,而是三个独立组件各自重写后叠加的结果。
Rust 编译器(最直接影响)
原来 JavaScript 写的 .astro 文件解析和转换逻辑全部换成 Rust 实现。带来的效果是编译更快,但也附带了一个重要的破坏性变更:新编译器对 HTML 语法更严格。
旧版 JavaScript 编译器在很多情况下会悄悄修正不规范的写法——比如 <div class=foo>(属性值没加引号)或者 <img src="...">(没闭合)。新版 Rust 编译器会直接报错。
这意味着如果你的模板里有任何不规范的 HTML 写法,升级到 7.0 后首次构建可能会报错。好消息是这只影响 .astro 文件——通过 set:html 加载的外部 HTML 不受影响。而且修起来也不麻烦,就是加引号、补闭合标签这类操作。
Vite 8 + Rolldown(影响最大)
Vite 8 的核心变化是用 Rolldown(Rust 打包器)统一了之前开发用 esbuild、生产用 Rollup 的双引擎架构。对 Astro 用户来说,这意味着:
- 构建速度:15-61% 更快(官方基准数据,具体幅度取决于项目规模)
- 一致性提升:不再出现"本地跑好好的,构建就炸了"的问题——这是双引擎架构最让人头疼的 bug 类型
- 依赖体积缩小:Babel 等转译依赖被 Rust 替代
实测数据来自社区:Linear 的构建从 46 秒降到 6 秒。当然,不是每个项目都能有这种提升,但 30-50% 的提速在中等规模项目上是常态。
Satteri(内容型站点最受益)
Markdown 和 MDX 处理从 JavaScript 的 remark/rehype 栈换成了 Satteri——一个由 Astro 核心成员维护的独立 Rust 项目。对博客和文档站这类内容密集型站点,这个改动贡献了最大的速度提升,官方说是最高 60%。
加上被替换成基于队列架构的内部渲染引擎(速度约 2.4 倍),整个构建管线几乎全部换了一遍。
其他 7.0 新特性
- 背景 Dev Server:
astro dev现在支持守护进程模式,可以astro dev stop、astro dev status、astro dev logs管理 - 结构化日志:日志输出 JSON 格式,方便 CI/CD 和日志聚合
7.1:补控制力
7.0 的性能底座搭好后,7.1 补了几个开发者日常会用到但之前缺了的控制功能。
CSP 细粒度控制:之前 Astro 的 CSP 支持比较粗糙,只能统一控制脚本和样式。7.1 新增了四个指令——script-src-elem、script-src-attr、style-src-elem、style-src-attr——可以分别控制内联/外部脚本和样式的安全策略。比如允许内联样式但不降低外部 CSS 的安全性,之前做不到。
分页 URL 自定义:paginate() 生成的 next/prev/first/last URL 原来默认是 /blog/2 这样的干净路径。但如果你部署到没有 URL 重写规则的主机(比如生成 .html 文件的场景),这些路径对应不上实际文件。7.1 新增了 format 函数让你控制每个分页 URL 的格式。
并发 Dev Server:7.0 引入的锁文件机制防止 AI 工具意外启动重复的 dev server,但也导致你想同时跑两个实例时被阻挡。7.1 新增 --ignore-lock 参数解决这个问题。
内容集内存优化:对于几百篇文章以上的大型内容集合,可以用 deferRender 选项按需渲染,降低同步时的内存峰值。
升级建议
npx @astrojs/upgrade
首次构建如果报错,检查模板里有没有不规范 HTML——这是最常见的升级障碍。修完之后就正常了。7.1 是兼容更新,7.0 用户直接升级即可。
Astro 7.x 的升级幅度值得做一次迁移——不是说旧站跑不动,而是构建速度 15-61% 的提升加上单引擎架构消除的不一致 bug,会在日常开发中持续节省时间。对于这个博客站来说,升级后最直观的感受应该是构建变快了,改文章后的热更新也更快了。
关于 Astro 的定位变化
7.0 是 Astro 被 Cloudflare 收购后的第一个大版本。从 Release Note 来看,团队运转正常,技术方向没有偏移——Rust 重写、Vite 8 集成这些决策和 Cloudflare 的生态没有直接关系,是所有 Astro 用户都会受益的通用改进。
目前 Astro 仍然保持框架中立,没有出现"Cloudflare 优先"的倾斜。这个信号是好的。
- Astro 7.0:astro.build/blog/astro-7
- Astro 7.1:astro.build/blog/astro-710