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 有兼容层,会尽量把现有的 esbuild 和 rollupOptions 配置转过去。
但如果项目里写了很多自定义 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
这些页面都没问题,再说升级完成。版本号更新只是开始,旧链接和内容还能不能正常访问,才是迁移站真正该看的地方。
参考: