# 策展 · X (Twitter) 🔥🔥🔥

> 作者：VoidZero (@voidzerodev) · 平台：X (Twitter) · 日期：2026-05-08

> 原始來源：https://x.com/voidzerodev/status/2052323217109377443

## 中文摘要

Rolldown 1.0 正式穩定發布，Rust 撰寫的高速 JavaScript bundler 達生產就緒。

Rolldown 1.0 達到穩定里程碑，具備 esbuild 等級速度、Rollup plugin 相容性，並成為 Vite 8 的底層 bundler，每週下載量超過 2000 萬次。開發歷時 2 年，從 2024 年 4 月首度公開發布 0.10.1，到 2026 年 5 月正式穩定，期間經歷 beta、技術預覽與 RC 階段，無需程式碼變更即可從最新 RC 升級。

**開發時程與 Vite 整合**

Rolldown 旨在統一 Vite 先前雙 bundler 架構，避免兩個轉換管道、兩個 plugin 系統與黏合程式碼的問題，從而擴展 Vite 未來能力。

- 2024 年 4 月：首次公開發布 0.10.1。
- 2024 年 12 月：1.0.0-beta.1，定義最終 1.0 介面範圍。
- 2025 年 5 月：`rolldown-vite` 暫時套件作為技術預覽，收集社群回饋。
- 2025 年 12 月：Vite 8 beta 以 Rolldown 為預設 bundler。
- 2026 年 1 月：Rolldown 1.0 RC 標記 API 穩定。
- 2026 年 3 月：Vite 8 穩定版發布，讓所有 Vite 使用者自動使用 Rolldown。
- 2026 年 5 月：Rolldown 1.0 穩定。

Vite 8 現為 Rolldown 主要入口，新功能直接惠及 Vite 使用者。遵循語意化版本，`^1.0.0` API 鎖定，選項名稱、類型與 plugin hook 簽名保持向後相容，僅實驗性功能除外；輸出行為如死程式碼消除（DCE）、chunking 與內聯啟發式將持續優化，預設值可能調整以產生更小、更快 bundle，但不影響執行時行為，變更詳見發行說明。

**效能優勢**

Rolldown 以 Rust 撰寫，利用 [Oxc](https://oxc.rs/) 處理解析與壓縮，速度達 Rollup 的 10~30 倍（專案越大差距越大），與 esbuild 相當，填補高速與 Rollup plugin API 的空白。

實際案例：
- Ramp 建置時間減 57%。
- Mercedes-Benz.io 建置時間減最多 38%。
- Beehiiv 建置時間減 64%。

Framer 與 PLAID 等公司已在生產環境使用。

**Rollup plugin 相容性**

為作為 Vite drop-in 替代，Rolldown 完整相容 Rollup plugin API，避免開發者大規模改碼，大多 Vite plugin 在 Vite 8 立即可用。

Rust 原生帶來額外優化：
- Hook 過濾器讓 JavaScript plugin 避開熱路徑：宣告 `id`、`code` 或 `moduleType` 過濾的 plugin，在不匹配時跳過 Rust-to-JS 跳轉，新增 plugin 不會線性拖慢建置；未提供過濾的 plugin，可用 `withFilter` 在使用者端包裝。
- 內建 Rust plugin 取代常見 Rollup 生態依賴，如 `replacePlugin` 與 `esmExternalRequirePlugin`，無需 JavaScript 跳轉。

**獨特 bundler 功能**

Rolldown 提供 Rollup 與 esbuild 欠缺的功能，提升輸出品質：
- 更小預設 bundle：積極 DCE 支援 `@__PURE__`、`@__NO_SIDE_EFFECTS__` 與 `sideEffects` 控制；智慧常數與 TypeScript const enum 內聯；僅 DCE 壓縮，移除死程式碼但不混淆識別符。
- 更細粒度 chunk 控制：webpack 風格 chunk 規則，Framer 藉此減 chunk 67%。

**使用方式**

**獨立使用**

透過 npm 安裝 `rolldown`，直接在 `rolldown.config.mjs` 配置。

**經由 Vite**

Vite 8 起預設使用 Rolldown，在 `vite.config.ts` 使用 `build.rolldownOptions` 傳遞專屬選項，如自訂 chunk 規則：
```ts
import { defineConfig } from 'vite'

export default defineConfig({
  build: {
    rolldownOptions: {
      // 你的 chunk 規則等
    }
  }
})
```

**從 RC 升級**

RC 階段優先修復真實世界 bug，1.0 僅 bug 修復與小功能，無需程式碼變更。新功能包括：
- 實驗性 watch mode：重建於新原生檔案系統監視器，更可靠、更快建置，支援 WASM。
- 實驗性原生 MagicString：完整 API，可替換 JavaScript 版，提供更好轉換效能與更少依賴。

**未來規劃**

1.0 僅為起點，持續開發：
- Vite 全 bundle 模式：開發時如生產般全 app bundle，而非 per-file ESM，解決大型程式碼庫的慢載入；初步數據顯示開發啟動快 3 倍、全重載快 40%、網路請求減 10 倍。
- 穩定 lazy barrel 優化：實驗版分析匯出，僅編譯實際使用模組，避免傳統 barrel 強制全編譯導致的建置時間與輸出大小膨脹。

**社群與貢獻**

約 200 名貢獻者合力完成，感謝早期生產採用者回饋。致敬靈感來源：[Rollup](https://rollupjs.org/)（Rich Harris 與 Lukas Taegert-Atkinson 的 plugin API）與 [esbuild](https://esbuild.github.io/)（Evan Wallace 的原生速度示範）。

呼籲貢獻：
- 文件：找出缺口，提升開發者易用性。
- Plugin 相容測試：在真實程式庫試用，提交重現 issue。
- 好上手 issue：在 GitHub 標記。

加入社群：
- [Discord](https://discord.gg/vitejs)：與團隊與使用者聊天。
- [GitHub](https://github.com/rolldown-rs/rolldown)：星標、回報 issue、貢獻。
- [文件](https://rolldown.rs/)：指南、API 參考、深入章節。
- X 與 Bluesky：追蹤生態更新。

## 標籤

新產品, 開源專案, Web, Rolldown, Vite, Rollup
