npm rolldown 1.0.0-rc.2
v1.0.0-rc.2

latest releases: 1.0.0-rc.10, 1.0.0-rc.9, 1.0.0-rc.8...
one month ago

[1.0.0-rc.2] - 2026-01-28

⚡ Lazy Barrel Optimization

  • Skips compilation of unused re-export modules in side-effect-free barrel modules
  • Particularly beneficial for projects importing from large component libraries

For large component libraries like Ant Design, when you import just one component:

import { Button } from 'antd';
Button;
Metric Without lazy barrel With lazy barrel
Modules compiled 2986 250
Build time (macOS) ~65ms ~28ms
Build time (Windows) ~210ms ~50ms

By enabling lazy barrel, Rolldown reduces the number of compiled modules by 90% and speeds up the build by 2-4x.

Enable it in your config:

export default {
  experimental: {
    lazyBarrel: true,
  },
};

For more details, see the https://rolldown.rs/in-depth/lazy-barrel-optimization

💥 BREAKING CHANGES

  • expose \0rolldown/runtime in transform hook (#8068) by @hyf0
  • rename rolldown:runtime to \0rolldown/runtime.js (#8067) by @hyf0

🚀 Features

  • remove inlined constants in smart mode (#8085) by @sapphi-red
  • allow more options for this.emitFile with type: 'prebuilt-chunk' (#8062) by @sapphi-red
  • warn when both code and postBanner contain shebang (#8039) by @Copilot

🐛 Bug Fixes

  • update the links to Rolldown docs in the error messages (#8103) by @sapphi-red
  • handle tsconfig.json load errors (#8105) by @sapphi-red
  • include inlined constants in namespace object (#8099) by @sapphi-red
  • vite test ci (#8084) by @IWANABETHATGUY
  • renamer: nested binding shadowing external module namespace in UMD/IIFE formats (#8083) by @Dunqing
  • deduplicate ESM chunk imports by canonical symbol (#8059) by @IWANABETHATGUY
  • refine side-effect detection for BigInt and RegExp (#8060) by @IWANABETHATGUY
  • rust: use string literal span for new URL error diagnostic (#8043) by @valadaptive
  • rust: use ModuleType::Asset for new URL imports (#8035) by @valadaptive
  • CJS-ESM interop - property assignment on CJS module exports (#8006) by @IWANABETHATGUY
  • eliminate the facade chunk if the dynamic entry module has been merged into common chunk (#8046) by @IWANABETHATGUY
  • Inlining dynamic imports broken with multiple entry points (#8037) by @IWANABETHATGUY
  • devtools: revert Chunk#id to Chunk#chunk_id (#8040) by @hyf0
  • invert __exportAll parameter logic to reduce default output size (#8036) by @Copilot
  • </script tag search should be case insensitive (#8033) by @IWANABETHATGUY
  • use directory name as-is for the variable name even if the name contained . (#8029) by @Copilot
  • dev/lazy: remove unnecessary rewrite from top level this to undefined (#8020) by @hyf0
  • dev/lazy: should keep lazy entries imports for patch file (#8019) by @hyf0
  • output.generatedCode.preset: 'es2015' was not set by default (#8026) by @sapphi-red
  • node: align option validator to types (#8023) by @sapphi-red
  • node: allow output.strictExecutionOrder by the option validator (#8022) by @sapphi-red
  • types: return this from on / off methods of RolldownWatcher (#8015) by @sapphi-red

🚜 Refactor

  • rolldown_plugin_vite_dynamic_import_vars: remove v1 implementation (#8096) by @shulaoda
  • rolldown_plugin_vite_import_glob: remove v1 implementation (#8095) by @shulaoda
  • lazy-barrel: restructure lazy barrel implementation (#8070) by @shulaoda
  • remove use_built_ins and use_spread from internal JSX options (#8079) by @sapphi-red
  • remove experimental.transformHiresSourcemap (#8055) by @Copilot
  • rust: use is_data_url more consistently (#8042) by @valadaptive
  • use FxIndexMap to store EntryPoint (#8032) by @IWANABETHATGUY
  • node: add type checks that ensures validator schema is up to date with types (#8024) by @sapphi-red

📚 Documentation

⚡ Performance

  • run inline-const pass for modules that are affected by inlining (#8064) by @sapphi-red

🧪 Testing

  • lazy-barrel: use package.json sideEffects instead of plugin hook (#8077) by @shulaoda
  • lazy-barrel: enable tests and add treeshake-behavior cases (#8071) by @shulaoda

⚙️ Miscellaneous Tasks

❤️ New Contributors

Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com

Don't miss a new rolldown release

NewReleases is sending notifications on new releases.