Tracking: Full Bundle Mode — Phase 2 (Complete CSR support)
Author: h-a-n-aCreated Jun 30, 2026Updated Sep 15, 2026
Labelstrackingscope: dev
Sub-tracker of #9030 ( Full Bundle Mode) for Phase 2 — Complete CSR support. Mirrors Milestone 2 of the FBM roadmap (#153, Milestone 6) / Phase 2 of the Vite bundled dev mode roadmap.
Goal
Stabilize FBM for real-world client-side-rendering projects beyond the basic SPA scenario:
- Land the HMR refactor that unblocks plugin support
- Get incremental rebuilds correct
- Expand support for advanced features (globs, watcher, memory)
Priority order: internal-state correctness → HMR refactor (blocks plugin support) → globs & memory.
Week of July 6th
- Reuse Vite's bundledDev server in test harness @h-a-n-a https://github.com/rolldown/rolldown/pull/10081
- properly update internal state for incremental builds @shulaoda
- HMR boundary calculation refactor — move boundary computation from server to client; also fixes the lazy-compilation duplicate-execution bug @h-a-n-a
- Investigate supporting
hotUpdate/handleHotUpdate, or whether a different mechanism fits @h-a-n-a - rebuild when
tsconfig.jsonchanges @shulaoda
Week of July 13th
- Skip HMR / reload when the output doesn't change (should be relatively easy in FBM) cc @h-a-n-a
- Proper
import.meta.globsupport — requires watching directories @shulaoda - vitejs/vite#22642 — add
inputoption (explicit FBM entrypoint instead of overloadingbuild.rollupOptions.input) @h-a-n-a - vitejs/vite#20374 — process HTML with the plugin container in dev (aligns
transformIndexHtmlunbundled ↔ FBM / build) @shulaoda
Week of July 20th
- HMR partial-accept support (
experimental.hmrPartialAccept) — vite discussion #13811 @h-a-n-a - Tracking: HMR patch parity for internal plugins (Vite CSR) (M1 covered only the important ones) @shulaoda
- Make all playgrounds in the Vite repo work under FBM @h-a-n-a
- Plugin / framework author guide — held until the HMR refactor settles the plugin model, so authors adapt only once @shulaoda
- Expose watcher options on the Vite side (no issue yet) @shulaoda
Week of July 27th
- Fix the
this.emitFilememory leak (cf. rollup#6095) @shulaoda - Track memory usage in Rolldown tests to guard against leaks @shulaoda
- https://github.com/rolldown/rolldown/issues/10030 @h-a-n-a
Week of Aug 3rd
- vitejs/vite-plugin-react#1191 — react-refresh preamble in entry chunk executes after shared chunks in MPA apps @h-a-n-a
- #9946 — cyclic ESM import used at module-init emitted unbound (
X is not defined) @h-a-n-a - #8411 — make FBM work on StackBlitz (currently panics under
bundledDev) @shulaoda - #10136 @shulaoda
References
- Parent: #9030 · dev-mode tracker: #8763
- FBM roadmap: Rolldown roadmap #153 (Milestone 6: Vite full-bundle mode)
- Vite bundled dev mode design doc & roadmap: https://github.com/vitejs/vite/discussions/22746 (Phase 2)
Source: rolldown/rolldown