English for Rolldown Bundler Developers
Learn the English vocabulary for Rolldown: Rollup-compatible plugin APIs, Rust-powered bundling, and its role as Vite's future default bundler.
Rolldown discussions are shaped by its positioning as Vite’s next-generation bundler, so the vocabulary centers on plugin compatibility, unified pipelines, and what changes for teams currently on Rollup or esbuild under Vite.
Key Vocabulary
Rollup-compatible plugin API — Rolldown’s commitment to supporting the existing Rollup plugin interface, so plugin authors and consumers don’t need to rewrite their integrations. “Our custom asset plugin needed zero changes — Rolldown’s Rollup-compatible plugin API picked it up directly.”
Unified bundler — the goal of replacing Vite’s split dev-time (esbuild) and build-time (Rollup) tooling with a single bundler used consistently across both, eliminating dev/prod behavioral drift. “Half our ‘works in dev, breaks in prod’ bugs came from esbuild and Rollup handling an edge case differently — a unified bundler removes that class of bug entirely.”
Tree-shaking — eliminating unused exports from the final bundle by statically analyzing which code is actually reachable, a core optimization carried over from Rollup’s design philosophy. “Tree-shaking isn’t removing this utility function — check whether it’s being re-exported somewhere in a way that looks like it’s still in use.”
Native bundling — Rolldown’s Rust-based core, delivering a step-change in bundling speed compared to the JavaScript-based Rollup it’s designed to replace. “The full production build finishes in a fraction of the time now that native bundling is doing the resolution and code generation.”
Drop-in replacement — the design intent that switching a Vite project to Rolldown should require little to no configuration change, since it targets compatibility with the existing plugin ecosystem. “We tried it expecting a migration project and it turned out to be close to a drop-in replacement — one flag and the existing config just worked.”
Common Phrases
- “Is this plugin using the Rollup-compatible API directly, or does it rely on a Rollup-specific internal we need to check?”
- “Are we seeing dev/prod parity issues that a unified bundler would actually solve, or is this something else?”
- “Is tree-shaking not kicking in because of a side-effect-full import, or a
sideEffectsfield misconfiguration?” - “How close to a drop-in replacement was this migration in practice — did anything actually need reconfiguring?”
- “Is native bundling giving us the speedup here, or is the bottleneck actually in a slow plugin hook?”
Example Sentences
Debugging a production-only bug: “This was a classic esbuild-versus-Rollup discrepancy — moving to Rolldown as a unified bundler means dev now behaves exactly like the production build.”
Explaining an architecture choice: “We adopted Rolldown early because the Rollup-compatible plugin API meant we kept our entire existing plugin chain instead of waiting for ecosystem support to catch up.”
Reviewing a pull request: “This import is blocking tree-shaking — mark the module as side-effect-free or restructure the export so the bundler can actually drop the unused parts.”
Professional Tips
- Frame adoption around unified bundler when talking to teams frustrated by dev/prod discrepancies — it’s the strongest argument for switching.
- Say Rollup-compatible plugin API, not just “compatible with Rollup,” to show you understand the specific compatibility surface being targeted.
- Use native bundling to explain speed, distinct from “it’s just faster” — it points to the actual architectural reason.
- Describe a smooth migration as a drop-in replacement only when config genuinely didn’t change — overusing the term undermines credibility when a migration turns out to need real work.
Practice Exercise
- Explain why a unified bundler removes an entire class of dev/prod bugs.
- Describe what makes a plugin migration to Rolldown a “drop-in replacement” versus a rewrite.
- Write a sentence explaining why an import might prevent tree-shaking from removing unused code.