3 分钟阅读

Astro 7 升级看起来主要是在给大站省时间

Astro 7 的关键词是 Vite 8、Rust compiler、Markdown/MDX 新管线、route caching。对个人博客来说,最直观的好处还是构建更快、规则更严格。

Astro 7 是 2026 年 6 月 22 日发的。这个站刚迁完不久,package.json 里已经是 Astro 7 系列,所以我顺手把发布说明和升级指南看了一遍。

先说结论:如果只是一个几十篇文章的小博客,Astro 7 不一定让你肉眼感到“哇,好快”。但如果是几百篇、几千篇 Markdown 的内容站,它这次改的地方就很对胃口。

Rust 终于不只是预告片了

Astro 6 里 Rust compiler 还是实验性的,到 Astro 7,.astro compiler 已经换成 Rust。Markdown 和 MDX 处理也走了新的 Rust 管线。官方基准里,Astro 7 的构建快了 15% 到 61%。

我对这种数字一般不会马上全信。每个站的瓶颈不一样,有的慢在图片,有的慢在 MDX 插件,有的慢在接口请求。但方向是对的:内容站文章越多,构建时间越容易变成一个烦人的固定成本。能省一点是一点。

这个博客现在 200 多篇文章,构建还不算慢。但旧文章里有很多 HTML、图片、代码块,后面如果继续恢复更多内容,Rust 管线的收益就会慢慢显出来。

Vite 8 和 Rolldown

Astro 7 升级到了 Vite 8。Vite 8 里面最值得看的,是 Rolldown。它是 Rust 写的 bundler,用来替代过去生产构建里那套 Rollup/esbuild 组合。

普通 Astro 项目大概率不需要改什么配置。官方也提到,Vite 8 有兼容层,会尽量把现有的 esbuildrollupOptions 配置转过去。

但如果项目里写了很多自定义 Vite 插件,或者直接碰了 Vite 内部 API,就别太自信。升级前跑一遍构建,出错时先看 Astro v7 升级指南,再看 Vite 8 的迁移说明。迁移这种事,最怕“看起来没问题”。

route caching 对纯静态博客不是刚需

Astro 7 把 route caching 稳定下来了,还加了 Netlify、Vercel、Cloudflare 的实验性 CDN cache provider。这个功能主要服务 on-demand rendered pages 和 endpoints,也就是请求来了再渲染的页面。

这个博客大部分页面都是提前生成的静态 HTML。对这种页面来说,部署平台本来就很好缓存。route caching 暂时不是重点。

但它让我想到另一个方向:如果以后站里做搜索接口、友链检测、动态榜单,Astro 不一定非要把这些东西拆到另一个后端里。可以先用 Astro 的 endpoint 做起来,再根据访问量决定要不要上缓存。

所以我会记住 route caching,但现在不急着用。

Advanced Routing 先别乱碰

Astro 7 还有 Advanced Routing,入口是 src/fetch.ts,可以更细地控制请求流程。这个东西很强,但强的东西也容易被滥用。

个人博客最怕的是本来很简单,最后自己把路由搞成迷宫。首页、文章页、归档页、标签页,这些能用文件路由解决就继续用文件路由。src/fetch.ts 这种入口,我会留给真正需要统一处理请求的场景,比如多租户、特殊鉴权、复杂代理。

对这个站来说,保留 URL 比玩新路由重要得多。

AI 日志和后台 dev server

Astro 7 还加了一些面向 AI 辅助开发的东西,比如后台 dev server 和 JSON logging。这个点挺现实。现在很多代码确实是人和 AI 一起改,机器读结构化日志比读彩色终端输出靠谱。

我现在跑本地预览时也更倾向于固定端口,比如这个站用 33221,不要和别的项目抢 4321。dev server 能稳定挂着,排查分页、canonical、图片路径这些问题会舒服不少。

我的升级检查表

我给这个站留一份简单 checklist:

node -v
npx @astrojs/upgrade
npm run astro -- sync
npm run build

然后手动打开几个页面:

  • 首页
  • /page/12/ 这种中间分页
  • 老文章地址
  • RSS
  • sitemap
  • 404

这些页面都没问题,再说升级完成。版本号更新只是开始,旧链接和内容还能不能正常访问,才是迁移站真正该看的地方。

参考: