編按:本文綜合整理自 Astro 官方部落格、Vite 8.0 公告、Netlify Changelog、GitHub Issue #17181 及 r/astrojs 社群討論,並加入 Siami 編輯部觀點與分析。
Astro 團隊在 2026 年 6 月 22 日推出 Astro 7.0,整個版本的核心主題只有一個字:速度。.astro 編譯器從 Go 完全改寫為 Rust、Markdown 與 MDX 處理走全新的 Rust pipeline(Sätteri)、Queued Rendering 從實驗標籤轉為預設渲染引擎,再加上底層 Vite 升級到 8 並整合 Rolldown(Rust 打包器)。官方公告顯示,在 MacBook Pro M4 Pro、48 GB 記憶體的基準環境下,整體 build 時間改善幅度落在 15% 到 61% 之間,部分大型網站甚至達到「快兩倍以上」。
為什麼這件事重要
Astro 自 2022 年發布 1.0 以來一直是「內容導向網站」的代表框架,主打「預設零客戶端 JS」與「Islands Architecture」,但 build 速度一直是它在大型專案上的痛點。當網站規模成長到數千篇文章、數萬個元件時,JavaScript-based 的 Markdown pipeline(unified/remark/rehype)會成為 build 時間的主要瓶頸。
Astro 7 同時在三個層面動手:
- 編譯器本體:
.astro編譯器從 Go 改寫為 Rust(Rust Compiler),保留向後相容性,但單獨量測顯示在 docs.astro.build 帶來約 6% 的 build 時間改善。 - Markdown / MDX pipeline:新推出的 Sätteri 完全取代 unified,用 pulldown-cmark(Rust CommonMark parser)與 Oxc(Rust MDX expression parser),附帶 platform-specific 二進位檔與 WASM fallback。
- 底層 bundler:隨 Vite 8 一併升級到 Rolldown,這是 Vite 團隊投入多年的 Rust-based bundler,官方公告顯示 benchmark 比 Rollup 快 10–30 倍、與 esbuild 同級。
Astro 7 在文件上明確指出:「最快的 build 就是不用 build 的 build」,但對於需要 ISR、SSR、動態路由的場景,這次的底層重構讓 build 階段不再卡住整個 CI/CD pipeline。
對台灣開發者社群而言,這個版本特別有意義 — Astro 已經是 許多內容網站、技術部落格與企業 marketing site 的首選,而 Siami.tw 本身就是 Astro 5.x 站點,這次升級路徑對中文內容網站的可維護性是直接相關的。
核心新功能一覽
Vite 8 與 Rolldown 整合
Vite 8 被官方稱為「多年來最重要的 Vite 發行版本」,主要變化是把打包階段從 esbuild + Rollup 的雙軌制,整合成 Rolldown 這條單一 Rust 路線。Astro 7 為既有使用者保留了相容層,自動把 esbuild 與 rollupOptions 設定轉換到 Rolldown 等價設定,多數專案零設定就能享受速度提升。
Rust Compiler 與 Sätteri Markdown Pipeline
新編譯器在文件裡強調「mostly backwards compatible」,但有兩個 breaking change 需要注意:
<span>Hello</span><span>World</span>從原本渲染為Hello World(含一個空格)改為HelloWorld(無空格)— 因為新編譯器更嚴格遵守 HTML 規格。要保留空格需用顯式 expression container:{Hello}{}{World}。- 若專案依賴
remark或rehypeplugins,仍可透過@astrojs/markdown-remark切回 unified-based pipeline,但會失去 Rust pipeline 的速度優勢。
Advanced Routing(src/fetch.ts)
Astro 7 引入新的請求處理入口 src/fetch.ts,完全比照 Cloudflare Workers 的標準 fetch handler pattern,讓開發者可以:
import { astro, FetchState } from 'astro/fetch';
export default {
fetch(request: Request) {
const state = new FetchState(request);
// Forward API requests to a backend service
if (state.url.pathname.startsWith('/api/')) {
return fetch(`https://backend.example.com${state.url.pathname}`, request);
}
return astro(state);
}
};
這項改動讓 Astro 從「靜態網站產生器 + SSR 補充」正式走向 全端 framework,Hono 等輕量 router 可以直接接進來。
Route Caching(CDN Cache Providers)
Astro 7 把 route-level 快取抽象成可插拔的 CDN Cache Providers,預設支援 Cloudflare KV、Netlify Edge、Vercel ISR 等後端。這對台灣本地電商網站(高 QPS、邊緣節點部署)是直接受惠的功能。
AI Coding Agent 偵測與 Background Dev Server
當 astro dev 偵測到環境中存在 AI coding agent(如 Cursor、Claude Code、Windsurf)時,會自動把 dev server 啟動為 detached background process — 這解決了 AI agent 寫程式時 dev server 阻塞 CLI 的老問題。Netlify 工程團隊在官方 changelog 確認 Astro 7 在 Netlify 上零設定即可使用。
JSON Structured Logging
Astro dev server 輸出從原本的人類可讀文字改為結構化 JSON log,方便整合 Loki、Datadog 等 observability 工具鏈 — 對中大型團隊的 CI 除錯特別有感。
數據解讀與質疑
官方公告強調「build 提升 15% 到 61%」,這數字需要拆開來看:
| 情境 | 預期改善幅度 | 原因 |
|---|---|---|
| 小型網站(< 100 篇文章) | 5–15% | .astro 編譯本身不是瓶頸,Vite 8 與 Sätteri 帶來的邊際效益較小 |
| 中型文件站(100–3000 篇) | 30–50% | Markdown pipeline 從 unified 換 Sätteri 是主要受益點 |
| 大型 portal(> 3000 篇文章) | 50–61%,部分 > 2x | Rolldown 在 bundling 階段的差距最明顯 |
| 純靜態 landing page | 0–10% | Vite 本身已經夠快,Rust 重構帶來的差距有限 |
已知問題:GitHub Issue #17181 報告 @astrojs/cloudflare v14 啟用 Advanced Routing 後 dev server 會 OOM(out-of-memory),原因是 export-types probe 在啟動時評估 worker entry。官方尚未釋出 patch,目前 workaround 是暫時關閉 Advanced Routing 或降低 Node heap 設定。對於計畫升級的 Cloudflare Pages 使用者,建議先在 staging 環境驗證。
Rolldown 的生態成熟度:Vite 8 + Rolldown 雖然 benchmark 漂亮,但 Rolldown 仍在積極開發階段,部分外掛(如某些 Rollup-only plugin)尚不相容。對於依賴大量客製化 bundler plugin 的企業專案,升級前應先盤點 plugin 清單。
與 Next.js 的競爭位置:Astro 7 的 Advanced Routing + AI coding agent 整合,明顯是把觸角伸向 Next.js 的全端 framework 市場。差別在於 Astro 仍維持「內容優先、零客戶端 JS 預設」的核心哲學,而 Next.js 已經走向「App Router + Server Components + RSC」重型架構。對台灣內容網站經營者而言,Astro 7 提供了比 Next.js 更輕量、比 Hugo 更靈活的選項。
升級建議與社群反應
升級指令
# 推薦(自動檢查相容性)
npx @astrojs/upgrade
# 手動
npm install astro@latest
Hacker News 主流反應
- 正面:AI coding agent 偵測功能被認為是「超聰明的設計」,Cursor + Claude Code 寫 Astro 專案不再被 dev server 阻塞。
- 質疑:Cloudflare v14 OOM bug 引起採用 Cloudflare Pages 的團隊擔憂,部分留言建議等 patch 後再升級。
- 好奇:Sätteri 取代 unified 生態(remark/rehype plugin 鏈)被視為「前端基礎建設 Rust 化」的又一塊拼圖,與 SWC、Biome、Turbopack 方向一致。
r/astrojs 社群摘要
Reddit r/astrojs 上的摘要貼文獲得廣泛關注,社群普遍認為 Astro 7 是「框架成熟化的重要里程碑」,特別是 Rust 編譯器 + Sätteri 的雙軌 Rust 化讓 Astro 在大型專案的可維護性與速度都站穩一線位置。
Netlify 官方背書
Netlify 在 6/22 當天發布 changelog 確認 Astro 7 在 Netlify 上零設定可用,這對企業採用是重要的信心指標。
參考資料
- Astro 7.0 Release Blog(Astro 官方)
- Vite 8.0 is out!(Vite 官方)
- Netlify Changelog: Astro 7 just works on Netlify
- GitHub Issue #17181 — Cloudflare v14 dev server OOM
- Astro 7: faster builds with Rust and Vite 8 — abdulkadersafi.com
- r/astrojs: Astro 7.0 Released 社群摘要
- Hacker News 討論串(48821653)
如果您經營內容網站或 marketing site,並正在評估從 Next.js / Hugo 遷移,Astro 7 是值得認真考慮的時機點 — 但 Cloudflare Pages 使用者建議先觀察 OOM bug 的 patch 進度。
網友熱門留言 (5)