Detalhes do pacote

@rolldown/binding-linux-x64-musl

rolldown1.6mMIT1.0.0-beta.34

Fast JavaScript/TypeScript bundler in Rust with Rollup-compatible API.

webpack, parcel, esbuild, rollup

readme (leia-me)

@rolldown/binding-linux-x64-musl

This is the x86_64-unknown-linux-musl binary for @rolldown/binding

changelog (log de mudanças)

[1.0.0-beta.34] - 2025-08-25

💥 BREAKING CHANGES

  • improve merging of top-level transform option with tsconfig (#5882) by @shulaoda
  • support top-level tsconfig (#5842) by @shulaoda

🚀 Features

  • rolldown_plugin_esm_external_require: export namespace directly for Node builtin modules (#5885) by @shulaoda
  • rolldown_plugin_dynamic_import_vars: warn by default when errors occur (#5866) by @shulaoda
  • support adding note for diagnostic (#5864) by @IWANABETHATGUY
  • rolldown_plugin_vite_css_post: align partial css chunk logic (#5861) by @shulaoda
  • setup rolldown_binding_watcher (#5859) by @hyf0
  • rolldown_plugin_vite_css_post: align css url replace logic (#5857) by @shulaoda
  • node/dev: binding for DevEngine (#5852) by @hyf0
  • dev: introduce DevEngine to support build for devlopement scenario (#5808) by @hyf0
  • Show a information log to tell built-in features if a plugin covered by built-in features are used (#5845) by @IWANABETHATGUY
  • rolldown_plugin_vite_css_post: align partial css url replace logic (#5837) by @shulaoda
  • rolldown_plugin_vite_css_post: align CSS chunk concatenation logic (#5836) by @shulaoda
  • rolldown_plugin_transform: support useDefineForClassFields=false with target>=es2022 (#5841) by @sapphi-red
  • expose esmExternalRequirePlugin (#5810) by @shulaoda
  • rolldown_plugin_esm_external_require: basic implementation (#5809) by @shulaoda
  • rolldown: oxc v0.82.3 (#5807) by @Boshen
  • expose oxc_minifier options (#5804) by @IWANABETHATGUY
  • rolldown_plugin_require_to_import: initialize (#5797) by @shulaoda
  • adjust codegen initial_indent for concatenateWrappedModule (#5779) by @IWANABETHATGUY
  • rolldown: align default value of option.context (#5745) by @situ2001

🐛 Bug Fixes

  • topLevelVar option removes class name, causing a TypeError in static block (#5888) by @IWANABETHATGUY
  • a esm module required by other module can't be a inner module of concatenateModuleGroup (#5875) by @IWANABETHATGUY
  • rolldown_plugin_transform: align lang logic correctly (#5874) by @shulaoda
  • Runtime error occurs depending on the lazy import order. (#5873) by @IWANABETHATGUY
  • when importee is ts or tsx adding potential false positive note for missing_export diagnostic (#5862) by @IWANABETHATGUY
  • hmr: boundary and accept_via was reversed (#5843) by @sapphi-red
  • returning result of this.resolve in resolveId hook impacts bundle size (#5851) by @IWANABETHATGUY
  • rolldown_plugin_transform: set typescript.removeClassFieldsWithoutInitializer for useDefineForClassFields=false (#5840) by @sapphi-red
  • hmr: import.meta.hot.accept in patch file should work (#5823) by @sapphi-red
  • proper handle pife and profiler_names for concatenate_wrapped_modules (#5835) by @IWANABETHATGUY
  • jsx preserve break component which is default export (#5751) by @shulaoda
  • hmr: ensure patch file name to be unique (#5825) by @sapphi-red
  • hmr: re-execute the boundary module rather than the accepted module (#5822) by @sapphi-red
  • Rolldown cannot treeshake unused branch (#5829) by @IWANABETHATGUY
  • inlineConst with constant propagation (#5826) by @IWANABETHATGUY
  • don't mangle variable names when minify: 'dce-only' is used (#5830) by @sapphi-red
  • return actual normalized minify options (#5818) by @IWANABETHATGUY
  • plugin/vite-resolve: try non-prefixed index before prefixed index (#5801) by @sapphi-red
  • throw a semantic error message instead of panic (#5796) by @AliceLanniste
  • rolldown: run DCE on chunk when minify: dce-only (#5792) by @Boshen
  • the import attribute has been removed. (#5794) by @IWANABETHATGUY
  • don't match CRLF for /./ (#5790) by @IWANABETHATGUY
  • node: allow output.topLevelVar by options validator (#5789) by @sapphi-red
  • node: allow transform.jsx: 'preserve' by options validator (#5781) by @sapphi-red
  • preserve default export for preserveModules (#5780) by @shulaoda
  • browser: sync exports (#5776) by @sxzz
  • rolldown_plugin_transform: skip builtin transform for module id with null byte (#5775) by @hi-ogawa

🚜 Refactor

  • move common transform types into rolldown_common (#5876) by @shulaoda
  • rolldown_plugin_vite_css_post: extract finalize_vite_css_urls (#5860) by @shulaoda
  • rust: make NotifyWatcher WASM-compatible (#5855) by @hyf0
  • rust/dev: remove improper deref for BuildDriver (#5854) by @hyf0
  • incremental: use clone_in_with_semantic_ids for program cloning (#5853) by @shulaoda
  • rolldown_plugin_esm_external_require: tweak code (#5824) by @shulaoda
  • improve resolve_dependencies (#5795) by @shulaoda
  • simplify method calls in PluginContext (#5785) by @situ2001

📚 Documentation

  • builtin-plugins: clarify behavior of esmExternalRequirePlugin (#5886) by @sapphi-red
  • builtin-plugins: add documentation for esmExternalRequirePlugin (#5813) by @shulaoda
  • support extracting doc for reference type (#5834) by @IWANABETHATGUY
  • optimization.inlineConst (#5831) by @IWANABETHATGUY
  • update description for output.minify (#5816) by @IWANABETHATGUY
  • plugins: extract plugins into a separate section (#5812) by @shulaoda

⚡ Performance

  • string_wizard: reduce allocation (#5793) by @Brooooooklyn

🧪 Testing

  • hmr: import.meta.hot.accept cases (#5821) by @sapphi-red
  • hmr: static import cases (#5820) by @sapphi-red
  • hmr: no boundary full reload case (#5819) by @sapphi-red

⚙️ Miscellaneous Tasks

  • deps: update oxc-resolver to v11.7.0 (#5889) by @shulaoda
  • deps: lock file maintenance (#5880) by @renovate[bot]
  • deps: lock file maintenance rust crates (#5881) by @renovate[bot]
  • deps: update github-actions (#5877) by @renovate[bot]
  • deps: lock file maintenance rust crates (#5879) by @renovate[bot]
  • deps: lock file maintenance npm packages (#5878) by @renovate[bot]
  • bump rolldown-ariadne (#5863) by @IWANABETHATGUY
  • remove usage of quote_expr, quote_stmt (#5858) by @IWANABETHATGUY
  • vite-tests: run all test suites even if some test suites failed (#5828) by @sapphi-red
  • vite-tests: set _VITE_TEST_JS_PLUGIN instead of _VITE_TEST_NATIVE_PLUGIN (#5827) by @sapphi-red
  • deps: use vitepress@^2.0.0-alpha.12 instead (#5811) by @shulaoda
  • deps: update dependency rolldown-plugin-dts to v0.15.7 (#5814) by @renovate[bot]
  • add example with oxc transform styled components plugin (#5800) by @IWANABETHATGUY
  • deprecate top-level jsx option in favor of transform.jsx (#5783) by @shulaoda
  • deps: update crate-ci/typos action to v1.35.5 (#5786) by @renovate[bot]
  • update default value of options.context (#5777) by @IWANABETHATGUY

◀️ Revert

  • "fix: jsx preserve break component which is default export (#5764)" (#5856) by @shulaoda

[1.0.0-beta.33] - 2025-08-18

💥 BREAKING CHANGES

  • only call closeBundle hook when bundling actually happens (#5715) by @shulaoda

🚀 Features

  • rolldown_plugin_vite_css_post: align transform logic except minify (#5768) by @shulaoda
  • rolldown_plugin_vite_css_post: align html inline css logic (#5767) by @shulaoda
  • support merge cjs ns in module group level (#5760) by @IWANABETHATGUY
  • rolldown_plugin_vite_css_post: filter transform id (#5766) by @shulaoda
  • rolldown: oxc v0.82.2 (#5754) by @Boshen
  • rollup-test: log error when pringStatus (#5744) by @situ2001
  • rolldown_plugin_vite_css_post: initialize (#5743) by @shulaoda
  • rolldown_plugin_vite_css: align transform hook logic (#5736) by @shulaoda
  • rolldown_plugin_vite_css: align partial transform hook logic (#5733) by @shulaoda
  • add original wrap_kind (#5729) by @IWANABETHATGUY
  • concatenateWrappedModule (#5724) by @IWANABETHATGUY
  • rolldown: oxc v0.82.1 (#5717) by @Boshen
  • improve error message for unresolved_import when platform is neutral (#5700) by @IWANABETHATGUY

🐛 Bug Fixes

  • rolldown_plugin_transform: merge tsconfig jsx options even when oxc.jsx.runtime is set (#5771) by @hi-ogawa
  • jsx preserve break component which is default export (#5764) by @shulaoda
  • rolldown_plugin_asset: should directly stringify raw content (#5749) by @situ2001
  • resolve symbol deconfliction order for cross-chunk imports by @IWANABETHATGUY
  • rolldown_error: improve resolve diagnostic message (#5740) by @shulaoda
  • vitest ci failed (#5741) by @IWANABETHATGUY
  • rolldown: options context should be available in renderStart (#5672) by @situ2001
  • ensure lazy module eval order when import variable from other chunk (#5727) by @IWANABETHATGUY
  • wasm build panic on stackblitz (#5723) by @shulaoda
  • plugin/vite-resolve: try non-prefixed id before prefixed id (#5711) by @sapphi-red
  • devtool: shouldn't filter out spans for devtool use case (#5713) by @hyf0
  • plugin/vite-resolve: fallback on more resolution errors that happened when trying with prefix (#5710) by @sapphi-red
  • plugin/vite-resolve: don't consider ids with npm: prefix as a built-in module (#5709) by @sapphi-red

🚜 Refactor

  • rolldown_plugin_json: use common plugin utils (#5769) by @shulaoda
  • hmr: remove unnecessary code of handling runtime module (#5752) by @hyf0
  • hmr: enhance HMR update logic and improve clarity (#5748) by @hyf0
  • improve ScopeHoistingFinalizerContext (#5739) by @shulaoda
  • move finalize_normal_module into ScopeHoistingFinalizerContext (#5738) by @shulaoda
  • private fields wrap_kind and original_wrap_kind and keep them sync (#5730) by @IWANABETHATGUY

📚 Documentation

  • rolldown_plugin_data_uri: update README (#5746) by @situ2001
  • install guide for minor platforms (#5716) by @sapphi-red
  • update description for platform neutral (#5701) by @IWANABETHATGUY

⚡ Performance

  • hmr: only refetch changed modules (#5753) by @hyf0
  • rolldown_plugin_reporter: gzip size computation (#5734) by @IWANABETHATGUY
  • hmr: reuse previous ast for non-changed modules (#5725) by @hyf0
  • rolldown_ecmascript: do not run semantic twice for dce-only (#5707) by @Boshen

🧪 Testing

  • rolldown: should await for toMatchFileSnapshot (#5759) by @situ2001
  • hmr: improve test of import.meta.hot.invalidate (#5747) by @hyf0

⚙️ Miscellaneous Tasks

  • deps: lock file maintenance (#5765) by @renovate[bot]
  • deps: lock file maintenance rust crates (#5763) by @renovate[bot]
  • deps: lock file maintenance npm packages (#5762) by @renovate[bot]
  • deps: update github-actions (#5755) by @renovate[bot]
  • deps: update dependency tinybench to v5 (#5756) by @renovate[bot]
  • deps: update github-actions (major) (#5757) by @renovate[bot]
  • deps: update crate-ci/typos action to v1.35.4 (#5714) by @renovate[bot]
  • prepare-release: regenerate binding.js after version bump (#5704) by @shulaoda
  • deps: update dependency tsdown to v0.14.1 (#5705) by @renovate[bot]
  • rollup-tests: skip occasionally failing test case (#5703) by @shulaoda
  • update binding.js (#5702) by @shulaoda

[1.0.0-beta.32] - 2025-08-11

💥 BREAKING CHANGES

  • advanceChunks: remove interaction between advanceChunks and preserveEntrySignatures (#5629) by @hyf0
  • types: align TreeshakingOptions type with Rollup (#5592) by @sapphi-red

🚀 Features

  • rolldown_plugin_manifest: support legacy (#5694) by @shulaoda
  • rolldown_plugin_vite_css: align load hook logic (#5667) by @shulaoda
  • rolldown_plugin_transform: throw error for invalid tsconfig (#5657) by @shulaoda
  • support context option (#5631) by @7086cmd
  • rolldown: oxc v0.81.0 (#5642) by @Boshen
  • include plugin name in the message of UNHANDLEABLE_ERRORs that happened in plugins (#5636) by @sapphi-red
  • pass plugin name to log (#5635) by @sapphi-red
  • rolldown_plugin_import_glob: support glob-safe paths (#5640) by @shulaoda
  • rolldown_binding: Add configurable max_blocking_threads with environment variable override (#5559) by @Copilot
  • output better error message for callable plugins (#5632) by @sapphi-red
  • rolldown_plugin_manifest: support names for asset (#5627) by @shulaoda
  • rolldown_plugin_manifest: align the logic related to css entries (#5626) by @shulaoda
  • hmr: handle import ... from 'external-module' in rolldown's best (#5599) by @hyf0
  • add array support for treeshake.moduleSideEffects option (#5593) by @sapphi-red

🐛 Bug Fixes

  • ensure ./ prefix for relative imports starting with . (#5687) by @shulaoda
  • hmr: fix regression test deconflict_import_bindings (#5684) by @hyf0
  • hmr: only modules in the propagation chain need to re-execute (#5683) by @hyf0
  • preserve empty export {} to ensure correct ESM detection (#5686) by @shulaoda
  • vite test failed (#5675) by @IWANABETHATGUY
  • incorrect module execution order with sideeffectful CJS module (#5661) by @IWANABETHATGUY
  • rollup-tests: update ignored tests for option.context (#5669) by @situ2001
  • hmr: ensure correctness of typeof require === 'function' (#5651) by @hyf0
  • hmr: rewrite this to exports for cjs modules (#5641) by @hyf0
  • don't generate namespace reexport code for reexport external record that has been moved to entry point (#5622) by @IWANABETHATGUY
  • esm export * from 'externalized-dep' generates unnecessary code (#5612) by @IWANABETHATGUY
  • hmr: correct runtime behavior for manual reexports (#5614) by @hyf0
  • ci: resolve potential sync issue in this.emitFile (#5611) by @shulaoda
  • hmr: support re-assignment on module.exports (#5607) by @hyf0
  • hmr: rewrite require(...) to sensible form (#5604) by @hyf0
  • align behavior when returning undefined from treeshake.moduleSideEffects function (#5595) by @sapphi-red

🚜 Refactor

  • rolldown_binding: improve the use of FxHashSet and FxHashMap (#5665) by @shulaoda
  • hmr: move constants to constants.rs (#5650) by @hyf0
  • hmr: rewrite exports,module to __rolldown_exports__,__rolldown_module__ (#5647) by @hyf0
  • hmr: migrate VisitMut to Traverse (#5646) by @hyf0
  • use bit_index function to get RuntimeHelper bit index (#5634) by @IWANABETHATGUY
  • improve JsCallback and MaybeAsyncJsCallback (#5628) by @shulaoda
  • use bitflags instead of boolean to represent module_namespace included reason (#5621) by @IWANABETHATGUY
  • rolldown_debug,rolldown_tracing: remove EnvFilter (#5231) by @Boshen
  • align parameter name for treeshake.moduleSideEffects (#5594) by @sapphi-red

📚 Documentation

  • contrib-guide: add CPU profile steps (#5677) by @sapphi-red
  • rollup-tests: update README to correct commands (#5658) by @situ2001

⚡ Performance

  • reduce memory usage when calc none wrapped modules implicit dependency (#5679) by @IWANABETHATGUY
  • hmr: do codegen in parallel (#5590) by @hyf0

🧪 Testing

  • Runtime error when using rolldown to build a page using tinymce (#5678) by @IWANABETHATGUY
  • rollup: enable testing for option.context (#5663) by @situ2001
  • hmr: run patch exectution after the normal execution (#5645) by @sapphi-red
  • hmr: properly execute patch chunks (#5617) by @sapphi-red
  • rust/hmr: hide unnecessary rolldown runtime, hmr module (#5606) by @hyf0
  • rust/hmr: support writting assertion tests (#5598) by @hyf0
  • rust: simplify global variable injection logic (#5597) by @hyf0

⚙️ Miscellaneous Tasks

  • deps: lock file maintenance (#5693) by @renovate[bot]
  • deps: lock file maintenance (#5692) by @renovate[bot]
  • deps: lock file maintenance rust crates (#5691) by @renovate[bot]
  • deps: update github-actions (#5688) by @renovate[bot]
  • deps: lock file maintenance npm packages (#5690) by @renovate[bot]
  • deps: update github-actions (major) (#5689) by @renovate[bot]
  • upgrade NAPI-RS to 3.2 (#5680) by @Brooooooklyn
  • deps: update dependency tsdown to v0.14.0 (#5681) by @renovate[bot]
  • clean up basic-vue example (#5676) by @IWANABETHATGUY
  • deps: update crate-ci/typos action to v1.35.3 (#5674) by @renovate[bot]
  • remove duplicate hook tracing (#5673) by @IWANABETHATGUY
  • deps: update dependency tsdown to v0.13.4 (#5668) by @renovate[bot]
  • deps: update dependency rolldown-plugin-dts to v0.15.6 (#5666) by @renovate[bot]
  • deps: update crate-ci/typos action to v1.35.2 (#5664) by @renovate[bot]
  • deps: update dependency rust to v1.89.0 (#5652) by @renovate[bot]
  • deps: update dependency rolldown-plugin-dts to v0.15.5 (#5649) by @renovate[bot]
  • deps: update dependency rolldown-plugin-dts to v0.15.4 (#5638) by @renovate[bot]
  • add just debug-test alias to run test without extended test case (#5633) by @IWANABETHATGUY
  • update lable related to auto labeled documentation ci (#5630) by @IWANABETHATGUY
  • clippy: allow case_sensitive_file_extension_comparisons (#5625) by @shulaoda
  • fix wasi build failed (#5624) by @sapphi-red
  • use env variable to control whether run extended tests (#5623) by @IWANABETHATGUY
  • remove redundant track_caller (#5620) by @IWANABETHATGUY
  • replace unmaintained goto-bus-stop/setup-zig with mlugg/setup-zig action (#5605) by @Copilot
  • deps: update crate-ci/typos action to v1.35.1 (#5603) by @renovate[bot]
  • deps: update crate-ci/typos action to v1.35.0 (#5601) by @renovate[bot]
  • deps: update dependency tsdown to v0.13.3 (#5602) by @renovate[bot]
  • deps: update dependency rolldown-plugin-dts to v0.15.3 (#5600) by @renovate[bot]

[1.0.0-beta.31] - 2025-08-04

🚀 Features

  • support function for asset_inline_limit (#5453) by @AliceLanniste
  • hmr: generate initializer for export * from ... (#5577) by @hyf0
  • hmr: remove meaningless stmt instead of replacing with empty stmt (#5570) by @hyf0
  • option watch.clearScreen (#5518) by @situ2001
  • rolldown: oxc v0.80.0 (#5538) by @Boshen
  • plugin/generateBundle: add support for modifying chunk filename (#5564) by @shulaoda
  • assetFileNames: support name and originalFileName (#5555) by @shulaoda
  • add optional onInvalidate schema to validator (#5528) by @situ2001
  • don't throw resolve errors for dynamic import inside try block (#5537) by @shulaoda
  • rolldown: oxc v0.79.0 (#5512) by @Boshen
  • rolldown_plugin_asset: align render_chunk logic (#5511) by @shulaoda
  • rolldown_plugin_utls: finish render_asset_url_in_js (#5508) by @shulaoda
  • rolldown_plugin_utils: align replacement logic for __VITE_ASSET__ (#5507) by @shulaoda
  • rolldown_plugin_utils: add partial render_asset_url_in_js support (#5504) by @shulaoda
  • expose sourcemapBaseUrl from NormalizedOutputOptions (#5513) by @sapphi-red

🐛 Bug Fixes

  • modify output filename correctly in generateBundle and writeBundle (#5580) by @shulaoda
  • hmr: ensure correct runtime behavior for export * from ... (#5578) by @hyf0
  • hmr: repeated imports should point to the same binding (#5571) by @hyf0
  • hmr: handle export * from ... (#5566) by @hyf0
  • rolldown_plugin_web_worker_post: handle import.meta correctly (#5565) by @shulaoda
  • antd bundle output not correct (#5549) by @IWANABETHATGUY
  • hmr: module namespace object should be included via treeshaking mechanism normally (#5543) by @hyf0
  • plugin/vite-resolve: use import / require conditions for external modules resolution (#5540) by @sapphi-red
  • rolldown_plugin_asset: InvalidAsset#is should match InvalidAsset::True (#5529) by @AliceLanniste
  • __name lacks require('./chunk-containing-runtime') when format: 'cjs' + keepNames: true (#5526) by @IWANABETHATGUY
  • plugin/vite-resolve: resolve externalized packages with resolve.externalConditions (#5491) by @sapphi-red
  • optimization.inlineConst: true does not keep export names when output.minifyInternalExports: true is enabled (#5520) by @IWANABETHATGUY
  • scanner: identify module.exports.__esModule = true (#5503) by @overlookmotel
  • error instead of panic if sourcemapBaseUrl is an invalid URL (#5514) by @sapphi-red

🚜 Refactor

  • hmr: use __rolldown_exports__ as the name for esm module namespace object (#5579) by @hyf0
  • tests: rename _configName to _testName in configuration files and update variant formatting in snapshots (#5569) by @hyf0
  • rolldown: remove unnecessary comments (#5552) by @situ2001
  • rolldown: Remove rolldown_rstr crate and use CompactStr directly (#5542) by @Copilot
  • hide namespace statement index knowledge inside StmtInfos (#5545) by @sapphi-red
  • use pascal case when naming bitflags field for ImportRecordMeta (#5539) by @IWANABETHATGUY
  • use concat_string! to simplify string concatenation (#5527) by @IWANABETHATGUY
  • use combinator function handle sourcemap_base_url parsing (#5517) by @IWANABETHATGUY
  • rolldown_plugin_utils: improve to_output_file_path_in_js (#5505) by @shulaoda

📚 Documentation

  • wording nit (#5521) by @nullxone

🧪 Testing

  • rust: rename configName to _configName and add comments (#5568) by @hyf0
  • rust: re-organize rolldown_testing_config (#5567) by @hyf0

⚙️ Miscellaneous Tasks

  • deps: lock file maintenance npm packages (#5582) by @renovate[bot]
  • deps: lock file maintenance (#5581) by @renovate[bot]
  • deps: lock file maintenance rust crates (#5576) by @renovate[bot]
  • deps: lock file maintenance npm packages (#5574) by @renovate[bot]
  • deps: update github-actions (#5573) by @renovate[bot]
  • deps: update dependency rolldown-plugin-dts to v0.15.1 (#5572) by @renovate[bot]
  • deps: update dependency tsdown to v0.13.2 (#5562) by @renovate[bot]
  • deps: update dependency rolldown-plugin-dts to ^0.15.0 (#5563) by @renovate[bot]
  • ai: Add AGENTS.md and GitHub Copilot setup workflow (#5556) by @Copilot
  • deps: update dependency tsdown to v0.13.1 (#5551) by @renovate[bot]
  • deps: update dependency rolldown-plugin-dts to v0.14.3 (#5544) by @renovate[bot]
  • ensure all diagnostics in self.errors have Severity::Error (#5494) by @sapphi-red
  • vscode: remove code-spell-checker extension (#5530) by @shulaoda
  • deps: update dependency rolldown-plugin-dts to v0.14.2 (#5522) by @renovate[bot]
  • add link to the REPL in the reproduction field description (#5519) by @sapphi-red
  • enable some rollup tests (#5515) by @sapphi-red

❤️ New Contributors

  • @Copilot made their first contribution in #5556
  • @nullxone made their first contribution in #5521

[1.0.0-beta.30] - 2025-07-30

💥 BREAKING CHANGES

  • rolldown: remove unfinished module federation support (#5471) by @Boshen
  • disable strictExecutionOrder by default (#5436) by @hyf0

🚀 Features

  • hmr: multiple changes should result to multiple updates (#5500) by @hyf0
  • binding: add memory adjustment hint in fn write (#5375) by @Brooooooklyn
  • store sideEffects information about global var access (#5495) by @IWANABETHATGUY
  • merge side effects detail (#5486) by @IWANABETHATGUY
  • plugin/vite-resolve: add warn / debug logs (#5476) by @sapphi-red
  • plugin/vite-resolve: avoid wrapping errors with napi errors (#5483) by @sapphi-red
  • add this.fs support (#5475) by @sapphi-red
  • rolldown_plugin_asset: align generate_bundle logic (#5480) by @shulaoda
  • hmr: prepare to launch that batched edits should result to multiple hmr output (#5458) by @hyf0
  • hmr: support import.meta.hot.invalidate (#5457) by @hyf0
  • mark all toESM as pure (#5461) by @IWANABETHATGUY
  • rolldown_plugin_asset: align load hook logic (#5452) by @shulaoda
  • rolldown_plugin_utils: align file_to_built_url (#5450) by @shulaoda
  • rolldown_plugin_utils: align should_inline logic (#5308) by @AliceLanniste
  • rolldown_plugin_asset: add partial file_to_built_url support (#5445) by @shulaoda
  • expose optimization.pifeForModuleWrappers option (#5433) by @sapphi-red
  • add optimization.pifeForModuleWrappers option (#5432) by @sapphi-red
  • use PIFE for callback passed to createCjsInitializer (#5427) by @sapphi-red
  • use PIFE for callbacks passed to __commonJSMin / _commonJS wrapper (#5426) by @sapphi-red
  • use PIFE for callback passed to createEsmInitializer (#5425) by @sapphi-red
  • use PIFE for callbacks passed to __esm wrapper (#5424) by @sapphi-red
  • use PIFE for callbacks passed to __esmMin wrapper (#5319) by @sapphi-red
  • rolldown: oxc v0.78.0 (#5421) by @Boshen
  • rolldown: support output.sourcemapBaseUrl (#5413) by @situ2001
  • mark all __commonJS CallExpression as Pure (#5419) by @IWANABETHATGUY
  • rolldown_plugin_alias: warn if alias resolves to non-absolute path (#5417) by @shulaoda
  • rolldown_plugin_asset: align encode_uri_path logic (#5410) by @shulaoda
  • add warning and conversion for import.meta for non-esm output format (#5378) by @7086cmd

🐛 Bug Fixes

  • use uuid_v4 to generate unique id for hook calls (#5501) by @hyf0
  • modules that are sideeffect free but relies on the execution order is not wrapped (#5498) by @IWANABETHATGUY
  • missing_export warning should not be an hard error (#5493) by @sapphi-red
  • cli: remove unnecessary await (#5487) by @situ2001
  • browser: stub fs/promises for browser build (#5484) by @sapphi-red
  • indirect requiring external module is not wrapped by __toESM in cjs format (#5454) by @IWANABETHATGUY
  • Panic on reexport external module in CJS format (#5430) by @IWANABETHATGUY
  • handle top-level return statements in CommonJS modules (#5437) by @hyf0
  • panic when using preserveModules: true and certain dependencies (#5415) by @IWANABETHATGUY
  • rolldown_plugin_alias: only replace the first matched alias (#5412) by @shulaoda
  • canonical name not found panic happens with treeshake.commonjs=true (#5409) by @IWANABETHATGUY
  • hmr: shouldn't consider self-accepting module as hmr boundary for its importee (#5405) by @hyf0
  • hmr: should detect hmr boundary correctly (#5400) by @hyf0
  • optimization.inlineConst: true generates invalid code when importing a module statically and dynamically (#5398) by @IWANABETHATGUY
  • top level VarDeclaration is not hoisted when wrapped in __esm (#5396) by @IWANABETHATGUY

🚜 Refactor

  • use pascal case when naming bitflags field (#5497) by @IWANABETHATGUY
  • test/hmr: use sensible time to wait (#5490) by @hyf0
  • hmr: update message types to use 'hmr:update' (#5489) by @hyf0
  • hmr: replace HmrOutput with HmrUpdate (#5488) by @hyf0
  • node/hmr: re-organize file structures (#5485) by @hyf0
  • rolldown_plugin_utils: improve asset_to_data_url (#5481) by @shulaoda
  • replace pattern match for SideEffectsDetail with bitflags api (#5479) by @IWANABETHATGUY
  • rename stmtSideEffect to SideEffectDetail (#5478) by @IWANABETHATGUY
  • use bitflags store more details about side effects (#5477) by @IWANABETHATGUY
  • node/hmr: tweak package test-dev-server (#5462) by @hyf0
  • hmr: tweak naming and add comments (#5459) by @hyf0
  • test/hmr: remove hard-code edited content (#5189) by @hyf0
  • rust: make Log#code an Option (#5416) by @shulaoda
  • hmr: should mark self-accept module correctly (#5406) by @hyf0
  • hmr: remove unnecessary data during propagate_update (#5402) by @hyf0
  • hmr: make hmr patch output less changeable (#5401) by @hyf0
  • __esm top level bindings hoisted (#5397) by @IWANABETHATGUY
  • skip fast in esm format when transform import.meta (#5395) by @IWANABETHATGUY

📚 Documentation

  • clarify rolldown-rollup behavior difference around output generation (#5439) by @sapphi-red

⚡ Performance

  • reduce runtime symbol memory usage and hashtable lookup (#5460) by @IWANABETHATGUY

🧪 Testing

  • hmr: support to run mutiple test fixtures (#5456) by @hyf0
  • basic tests for optimization.pifeForModuleWrappers (#5435) by @sapphi-red

⚙️ Miscellaneous Tasks

  • deps: update github-actions (#5509) by @renovate[bot]
  • debug: update default session ID to meaningful unknown-session (#5502) by @hyf0
  • deps: update dependency rolldown-plugin-dts to v0.14.2 (#5492) by @renovate[bot]
  • auto generated runtime_helper bitflags (#5474) by @IWANABETHATGUY
  • fix wasi build failed (#5470) by @IWANABETHATGUY
  • deps: lock file maintenance (#5467) by @renovate[bot]
  • deps: lock file maintenance (#5466) by @renovate[bot]
  • deps: lock file maintenance rust crates (#5465) by @renovate[bot]
  • deps: lock file maintenance npm packages (#5464) by @renovate[bot]
  • deps: update github-actions (#5463) by @renovate[bot]
  • export __commonJSMin in runtime-base.js (#5455) by @IWANABETHATGUY
  • rolldown_plugin_utils: remove file_to_dev_url temporarily (#5446) by @shulaoda
  • rolldown_plugin_asset: move remove_url_query into rolldown_plugin_utils (#5444) by @shulaoda
  • rolldown: disable aarch64 atomics (#5447) by @Brooooooklyn
  • remove diff with esbuild (#5428) by @IWANABETHATGUY
  • dx/ai: add deepwiki badge to enable automatic refresh (#5423) by @hyf0
  • dx/ai: Use .cursorignore to ignore meaningless files for AI (#5422) by @hyf0
  • rolldown_plugin_alias: inline matches and remove redundant comment (#5418) by @shulaoda
  • rolldown_plugin_asset: remove unnecessary comments (#5411) by @shulaoda
  • rolldown_plugin_manifest: remove unnecessary code (#5408) by @shulaoda
  • deps: update dependency tsdown to v0.13.0 (#5392) by @renovate[bot]

[1.0.0-beta.29] - 2025-07-22

🚀 Features

  • rolldown_plugin_chunk_import_map: support custom file name (#5383) by @shulaoda
  • rolldown_plugin_chunk_import_map: emit standard import map (#5382) by @shulaoda
  • rolldown_plugin_chunk_import_map: support custom base url (#5381) by @shulaoda
  • support plugin context meta for native plugins (#5371) by @shulaoda
  • rolldown: oxc v0.77.3 (#5367) by @Boshen
  • rolldown_plugin_transform: align sourcemap enable logic (#5348) by @shulaoda
  • plugin_driver: use hook usage for close_bundle (#5361) by @shulaoda
  • hmr: attach region comments for hmr patch (#5358) by @hyf0
  • rolldown: add transformHiresSourcemap option (#5346) by @Brooooooklyn
  • rolldown_plugin_web_worker_post: align transform_ast hook metadata order to post (#5339) by @shulaoda

🐛 Bug Fixes

  • when preserveEntrySignatures: false is set, output includes a circular import (#5365) by @IWANABETHATGUY
  • do not normalize iife global names (#5228) by @redstonekasi
  • hmr: should not panic for editing modules that contain import(..) (#5351) by @hyf0
  • sync ast for newly added modules (#5354) by @IWANABETHATGUY
  • used exports from dynamic imported module are removed incorrectly (#5341) by @IWANABETHATGUY
  • keep top level variables for non-esm format when minify is enabled (#5332) by @sapphi-red
  • rust: correctly return watch option (#5334) by @HigherOrderLogic

🚜 Refactor

  • rolldown_plugin_chunk_import_map: clarify import map paths and output filename (#5376) by @shulaoda
  • rolldown: collapse_sourcemaps does not need to own a Vec (#5352) by @Boshen
  • rolldown_plugin_asset: improve readability for easier maintenance (#5359) by @shulaoda
  • ecmascript: remove unnecessary allocator.alloc(program) call (#5350) by @Boshen
  • store ast with same shape as module_table (#5345) by @IWANABETHATGUY
  • simplify is_dynamic_entry_alive (#5342) by @IWANABETHATGUY
  • rolldown_plugin_web_worker_post: tweak code organization (#5338) by @shulaoda
  • store ScopeFlags instead of ScopeId when traverse ast (#5330) by @IWANABETHATGUY
  • simplify keep_names VarDeclaration rewrite (#5325) by @IWANABETHATGUY

📚 Documentation

  • experimental: update the description of chunkImportMap (#5384) by @shulaoda
  • experiment: add usage documentation for chunkImportMap (#5379) by @shulaoda

⚡ Performance

  • plugin_driver: skip unused hooks early based on hook usage meta (#5363) by @shulaoda
  • rolldown: box TransformOptions (#5353) by @Boshen

🧪 Testing

  • rust: hide runtime module output in snapshots to improve clarity (#5366) by @hyf0
  • node: put minify related tests in a single directory (#5333) by @sapphi-red

⚙️ Miscellaneous Tasks

  • examples: update chunk-import-map (#5385) by @shulaoda
  • add examples/chunk-import-map (#5380) by @shulaoda
  • deps: lock file maintenance (#5373) by @renovate[bot]
  • deps: lock file maintenance rust crates (#5372) by @renovate[bot]
  • deps: lock file maintenance npm packages (#5370) by @renovate[bot]
  • deps: update dependency @napi-rs/wasm-runtime to v1 (#5369) by @renovate[bot]
  • deps: update taiki-e/install-action action to v2.56.19 (#5368) by @renovate[bot]
  • extract HookOrderIndicates logic (#5362) by @shulaoda
  • rust: remove unnecessary #[allow(unused)] (#5360) by @shulaoda
  • deps: update dependency rolldown-plugin-dts to v0.14.1 (#5357) by @renovate[bot]
  • use debug=1 for profile.dev and profile.test (#5355) by @IWANABETHATGUY
  • deps: update dependency rolldown-plugin-dts to ^0.14.0 (#5349) by @renovate[bot]
  • remove packages/rolldown/npm/* from workspace config (#5347) by @Brooooooklyn
  • pnpm,justfile: enable pnpm verifyDepsBeforeRun: install (#5331) by @Boshen
  • update build-js-glue script (#5335) by @btea

◀️ Revert

  • test(rust): prevent meaningless snapshot change from bumping oxc runtime versions #5312 (#5336) by @hyf0

❤️ New Contributors

  • @redstonekasi made their first contribution in #5228
  • @HigherOrderLogic made their first contribution in #5334

[1.0.0-beta.28] - 2025-07-17

🚀 Features

  • rolldown: oxc v0.77.2 (#5328) by @Boshen
  • hmr: add module and exports parameters to CJS initializer functions (#5322) by @hyf0
  • rolldown_plugin_transform: align with vitejs/rolldown-vite#318 (#5318) by @shulaoda
  • rolldown_plugin_transform: align with vitejs/rolldown-vite#315 (#5315) by @shulaoda
  • hmr: automatically disable treeshaking in hmr (#5311) by @hyf0
  • hmr: use trait HmrAstBuilder to unify ast construction (#5310) by @hyf0
  • rolldown_plugin_chunk_import_map: basic implementation (#5307) by @shulaoda
  • add watch.onInvalidate (#5239) by @situ2001
  • rolldown_plugin_chunk_import_map: implement initial render_chunk logic (#5306) by @shulaoda
  • rolldown: oxc v0.77.1 (#5304) by @Boshen
  • js: expose experimental.incrementalBuild option (#5300) by @IWANABETHATGUY
  • js: support experimental.onDemandWrapping option (#5299) by @IWANABETHATGUY
  • support on demand wrapping for entry chunk (#5291) by @IWANABETHATGUY
  • rolldown_plugin_chunk_import_map: initialize (#5289) by @shulaoda
  • show owner module id for "canonical name not found for" errors (#5288) by @sapphi-red

🐛 Bug Fixes

  • only transform VarDeclaration when enable keepNames (#5323) by @IWANABETHATGUY
  • keepNames with special Ifstmt (#5320) by @IWANABETHATGUY
  • incremental watch panic when adding dynamic import (#5309) by @IWANABETHATGUY
  • make leaf module wrapping optimization opt-in (#5305) by @IWANABETHATGUY
  • keepNames should consider exportNamed function declaration (#5298) by @IWANABETHATGUY
  • undefined process.versions for browser build (#5295) by @sxzz
  • sanitizeFileName: entry name should be sanitized (#5283) by @shulaoda
  • minify-internal-exports: ensure minifying internal exports stably (#5281) by @hyf0
  • keep legal and annotation comments for minify: 'dce-only' (#5280) by @sapphi-red
  • unstable chunk generation when preserveEntrySignatures: false is used (#5274) by @IWANABETHATGUY

🚜 Refactor

  • pass the while CodegenOptions to EcmaCompiler::minify (#5279) by @sapphi-red
  • avoid iterate canonical_exports twice (#5276) by @IWANABETHATGUY

📚 Documentation

  • pluginutils: add README file (#5262) by @TheAlexLichter

⚡ Performance

  • inline function expression when rewriting name property with keepNames enabled (#5321) by @IWANABETHATGUY
  • rolldown_sourcemap: cache source id -> source text mapping (#5285) by @Boshen
  • rolldown_sourcemap: disable rayon (#5284) by @Boshen

🧪 Testing

  • rust: prevent meaningless snapshot change from bumping oxc runtime versions (#5312) by @hyf0

⚙️ Miscellaneous Tasks

  • upgrade to NAPI-RS 3.0 stable (#5324) by @Brooooooklyn
  • infra: add onlyBuiltDependencies (#5287) by @situ2001
  • improve the order of import keys in the exports field (#5314) by @btea
  • deps: update dependency rolldown-plugin-dts to v0.13.14 (#5293) by @renovate[bot]
  • deps: lock file maintenance rust crates (#5267) by @renovate[bot]
  • deps: lock file maintenance npm packages (#5266) by @renovate[bot]
  • deps: update github-actions (#5265) by @renovate[bot]

❤️ New Contributors

  • @situ2001 made their first contribution in #5287

[1.0.0-beta.27] - 2025-07-13

🚀 Features

  • rolldown: support linux-arm64-ohos (#5258) by @Brooooooklyn
  • napi: add aarch64-linux-android target (#5141) by @Boshen
  • rolldown: oxc v0.77.0 (#5255) by @Boshen

🐛 Bug Fixes

  • this in CJS is replaced with undefined but should be exports (#5244) by @IWANABETHATGUY
  • normalize path from package.json's realpath before matching sideEffects field (#5250) by @sapphi-red

⚡ Performance

  • don't wrap module if it is leaf module and side effects free when enable strictExecutionOrder (#5240) by @IWANABETHATGUY

⚙️ Miscellaneous Tasks

  • upgrade NAPI-RS cli to 3.0.0-alpha.93 (#5243) by @Brooooooklyn

[1.0.0-beta.26] - 2025-07-10

🐛 Bug Fixes

  • browser: process is not defined error (#5241) by @sapphi-red
  • plugin/vite-resolve: allow resolving bare specifiers to relative paths for entries (#5230) by @sapphi-red

⚙️ Miscellaneous Tasks

  • deps: do not enable full feature for tokio (#5238) by @Boshen

[1.0.0-beta.25] - 2025-07-10

🚀 Features

  • hmr: should initialize cjs with correct initializer (#5234) by @hyf0
  • hmr: handle import(..) on cjs modules (#5225) by @hyf0
  • support chunkModulesOrder (#5227) by @IWANABETHATGUY
  • add exports to rolldown:runtime (#5224) by @hyf0
  • hmr: support import(..) (#5223) by @hyf0
  • add analyzed source code side effects field in ecmaMeta (#5226) by @IWANABETHATGUY
  • hmr: return undefined from generateHmrPatch when there is no patch (#5218) by @sapphi-red
  • pass isEntry to resolveId hook of CallableBuiltinPlugin (#5215) by @sapphi-red
  • pass isEntry from this.resolve (#5214) by @sapphi-red
  • node: support OutputOptions#minifyInternalExports (#5210) by @hyf0
  • rolldown: oxc v0.76.0 (#5212) by @Boshen
  • rust: support minify_internal_exports (#5208) by @hyf0
  • support opt-in topLevelVar (#5188) by @7086cmd
  • rolldown: oxc-resolver v11.5.0 (yarn pnp) (#5147) by @Boshen

🐛 Bug Fixes

  • do not optimize interop code for mod.default if mod bind from default import (#5232) by @IWANABETHATGUY
  • return moduleSideEffects instead of sideEffects from callable plugins (#5206) by @sapphi-red
  • return moduleSideEffects set by native plugins from this.resolve (#5205) by @sapphi-red
  • incorrect output when importing CJS package (#5201) by @IWANABETHATGUY
  • use resolved id instead of module_request when analysis if a module is a json module (#5200) by @IWANABETHATGUY

🚜 Refactor

  • use sort_unstable_by_key for simple property access (#5233) by @IWANABETHATGUY
  • add Deref impl for TransformPluginContext to access PluginContext (#5221) by @sapphi-red
  • use BindingHookSideEffects in CallableBuiltinPlugin (#5204) by @sapphi-red
  • move side effects type bindings logic to rust side (#5203) by @sapphi-red
  • test: improve experience of writing manual integration test (#5186) by @hyf0
  • rust: unify logic of IntegrationTest (#5185) by @hyf0

🧪 Testing

  • rust: automatically run extented test for minify_internal_exports: true (#5213) by @hyf0
  • rust: add basic tests for minifying internal exports (#5211) by @hyf0

⚙️ Miscellaneous Tasks

  • deps: oxc-browserslist v2.0.10 and oxc-resolver v11.5.2 (#5222) by @Boshen
  • use jsonc schema for knip config (#5207) by @sapphi-red
  • rust: remove unused code related to safe_cjs_to_eliminate_interop_default (#5202) by @shulaoda
  • inject test variant name to rust unit test script (#5195) by @IWANABETHATGUY
  • change CC => TARGET_CC (#5194) by @Brooooooklyn
  • deps: lock file maintenance npm packages (#5191) by @renovate[bot]
  • deps: lock file maintenance (#5193) by @renovate[bot]
  • deps: lock file maintenance rust crates (#5192) by @renovate[bot]
  • deps: update github-actions (#5190) by @renovate[bot]
  • test: remove unnecessary test snapshots (#5183) by @shulaoda
  • rolldown: upgrade to NAPI-RS 3.0.0-beta.12 (#5184) by @Brooooooklyn

[1.0.0-beta.24] - 2025-07-05

🚀 Features

  • support inlineConst for imported variable (#5165) by @IWANABETHATGUY
  • rust: skip transform hook for modules starts with rolldown: (#5169) by @hyf0
  • print rolldown version (#5163) by @btea
  • add optimization.inlineConst option (#5164) by @IWANABETHATGUY
  • hmr: introduce rolldown_plugin_hmr to inject runtime code (#5159) by @hyf0
  • rolldown: oxc v0.75.1 (#5157) by @Boshen

🐛 Bug Fixes

  • generate correct CSS filename in preserveModules mode (#5175) by @shulaoda
  • rolldown_plugin_build_import_analysis: avoid default keyword error (#5166) by @shulaoda
  • watch: add paths to watcher in batch (#5068) by @branchseer
  • debug: should emit chunk data after computing cross chunk links (#5156) by @hyf0
  • simplify commonjs interop default prop optimization (#5142) by @IWANABETHATGUY
  • should include modules contain exports * from '...' forcefully if they reexport any wrapped module (#5143) by @hyf0
  • use canonical runtime time for __name (#5140) by @IWANABETHATGUY
  • options.jsx is ignored when options.transform is set (#5137) by @shulaoda

🚜 Refactor

  • polyfill flatten_iter for wasm target (#5180) by @IWANABETHATGUY
  • rolldown_plugin_dynamic_import_vars: remove unnecessary validity checks (#5172) by @shulaoda
  • hmr: remove hmr-related hacky hard-code (#5168) by @hyf0
  • rolldown_plugin_dynamic_import_vars: align with rolldown-vite (#5171) by @shulaoda
  • hmr: use rolldown:hmr to load hmr runtime code (#5162) by @hyf0
  • rust: remove special fields of Asset (#5155) by @hyf0
  • rust: make Asset#originate_from optional (#5153) by @hyf0
  • rust: isolate mutations on assets data (#5152) by @hyf0
  • rust: remove unnecessary usage of index vec on assets (#5151) by @hyf0
  • merge different member expr in try_rewrite_member_expr (#5146) by @IWANABETHATGUY
  • remove unused code (#5144) by @IWANABETHATGUY
  • use self.result.ast_usage directly (#5135) by @IWANABETHATGUY

📚 Documentation

  • update syntax lowering transform info (#5145) by @TheAlexLichter

🧪 Testing

  • rust/hmr: hide hmr runtime code in snapshots (#5160) by @hyf0

⚙️ Miscellaneous Tasks

  • rolldown_testing: avoid unnecessary snapshots (#5181) by @shulaoda
  • fix flatten_iter compile error (#5179) by @IWANABETHATGUY
  • expose optimization.inlineConst option (#5177) by @IWANABETHATGUY
  • infra: update pnpm-lock.yaml (#5178) by @shulaoda
  • rust: remove unnecessary crate rolldown_loader_utils (#5173) by @shulaoda
  • print build time use green color (#5158) by @btea
  • deps: update dependency rolldown-plugin-dts to v0.13.13 (#5148) by @renovate[bot]
  • deps: update dependency rolldown-plugin-dts to v0.13.13 (#5138) by @renovate[bot]
  • allow only test without generate snapshot (#5134) by @IWANABETHATGUY

[1.0.0-beta.23] - 2025-07-01

💥 BREAKING CHANGES

  • debug: rename debug logs fields to be consitent (#5125) by @antfu

🚀 Features

  • debug: append content for asset data and unify source field to content. (#5130) by @hyf0
  • debug: emit asset-related data (#5124) by @hyf0
  • commonjs tree shaking. (#5095) by @IWANABETHATGUY
  • rolldown_plugin_wasm_helper: align behaviors for expected functionality (#5120) by @shulaoda
  • remove experimental.enableComposingJsPlugins (#5122) by @shulaoda
  • use same option object reference (#5114) by @sapphi-red
  • add util function to inspect why the facade symbol is created (#5115) by @IWANABETHATGUY
  • types: expose ChunkingContext type (#5112) by @sapphi-red
  • scan commonjs exports (#5111) by @IWANABETHATGUY
  • debug: remove unneeded source info of render chunk events (#5109) by @hyf0
  • debug: only emit debug information for trace level (#5108) by @hyf0
  • debug: emit chunk related informations (#5106) by @hyf0

🐛 Bug Fixes

  • debug: add hook render chunk start and end events to Meta enum (#5117) by @hyf0

🚜 Refactor

  • rust: unify outdated namings (#5127) by @hyf0

📚 Documentation

  • advanced-chunks: clarify module capturing behavior (#5129) by @hyf0

🧪 Testing

  • support array output options (#5113) by @sapphi-red

⚙️ Miscellaneous Tasks

  • remove unused code (#5128) by @IWANABETHATGUY
  • remove unnecessary skipComposingJsPlugin (#5123) by @shulaoda
  • deps: update crate-ci/typos action to v1.34.0 (#5119) by @renovate[bot]
  • deps: update NAPI-RS to 3.0.0-beta.11 (#5110) by @shulaoda

[1.0.0-beta.22] - 2025-06-30

🚀 Features

  • plugin: use Log instead of BuildDiagnostic for PluginContext#log (#5099) by @shulaoda
  • plugin: support info/warn/debug in native plugin context (#5098) by @shulaoda
  • plugin: support vite plugin custom in PluginContext#resolve (#5097) by @shulaoda
  • rolldown_plugin_import_glob: align edge cases with rolldown-vite (#5094) by @shulaoda
  • rolldown_plugin_vite_resolve: align subpath import resolution (#5093) by @shulaoda
  • add commonjs tree shake option (#5096) by @IWANABETHATGUY
  • rolldown_plugin_web_worker_post: align with rolldown-vite (#5092) by @shulaoda
  • manual-chunks: support getModuleInfo (#5087) by @hyf0
  • advanced-chunks: support getModuleInfo in groups.{group}.name (#5086) by @hyf0

🚜 Refactor

  • rolldown_loader_utils: inline unnecessary binary_to_esm (#5100) by @shulaoda

⚡ Performance

  • hmr: remove console.debug in runtime.registerModule (#5091) by @sapphi-red
  • hmr: remove no-op runtime.__toCommonJS call (#5089) by @sapphi-red

⚙️ Miscellaneous Tasks

  • deps: lock file maintenance rust crates (#5105) by @renovate[bot]
  • deps: lock file maintenance npm packages (#5104) by @renovate[bot]
  • deps: update rust crate schemars to v1 (#5103) by @renovate[bot]
  • deps: update dependency vite to v7 (#5102) by @renovate[bot]
  • deps: update github-actions (#5101) by @renovate[bot]
  • deps: update dependency rolldown-plugin-dts to v0.13.12 (#5088) by @renovate[bot]

[1.0.0-beta.21] - 2025-06-27

🚀 Features

  • rolldown: oxc_resolver v11.3.0 (#5078) by @Boshen
  • debug: support to emit meta.json (#5075) by @hyf0
  • plugin/vite-resolve: support tsconfig paths (#5004) by @sapphi-red

🐛 Bug Fixes

  • plugin/vite-resolve: resolve glob side effects field correctly (#5079) by @sapphi-red
  • rolldown_plugin_transform: don't load tsconfig for files in node_modules (#5074) by @sapphi-red
  • preserveModules: correctly generate absolute chunk file names (#5072) by @shulaoda
  • vite-tests: fix pnpm install failure (#5070) by @shulaoda

📚 Documentation

  • contrib-guide: add memory profile steps (#5053) by @sapphi-red

⚙️ Miscellaneous Tasks

  • remove just lint in packages/debug/package.json (#5080) by @hyf0
  • deps: update dependency rolldown-plugin-dts to v0.13.12 (#5077) by @renovate[bot]
  • repo: make pnpm lint-knip part of just lint-node (#5076) by @hyf0
  • infra: move insta.yaml to the workspace root (#5073) by @shulaoda

[1.0.0-beta.20] - 2025-06-25

🚀 Features

  • rolldown: oxc v0.75.0 (#5069) by @Boshen
  • rolldown: oxc 0.74.0 (#5047) by @Boshen

🐛 Bug Fixes

  • vite-tests: avoid crash when packageJson.pnpm is undefined (#5066) by @shulaoda
  • JSX preset options not working correctly (#5060) by @shulaoda
  • remove improper jsdoc of builtin define plugin (#5046) by @AliceLanniste

🚜 Refactor

  • passing vec length directly (#5050) by @ShroXd

📚 Documentation

  • explain that a chunk may be bigger than maxSize (#5014) by @sapphi-red
  • update example about withFilter (#5040) by @IWANABETHATGUY

⚡ Performance

  • preallocate smaller vec for hash placeholder finder (#5064) by @sapphi-red
  • reduce temporary memory usage by avoiding output chunk clone until needed (#5058) by @sapphi-red
  • skip empty write bundle hook with hook_usage meta (#5057) by @sapphi-red

⚙️ Miscellaneous Tasks

  • deps: update dependency rolldown-plugin-dts to v0.13.12 (#5065) by @renovate[bot]
  • rolldown: upgrade NAPI-RS to 3.0.0-beta.10 (#5063) by @Brooooooklyn
  • bump oxc-resolver to v11.2.1 (#5061) by @Boshen
  • deps: update dependency tsdown to v0.12.9 (#5056) by @renovate[bot]
  • deps: update dependency rolldown-plugin-dts to v0.13.12 (#5054) by @renovate[bot]
  • remove long-commented-out code (#5048) by @shulaoda
  • deps: lock file maintenance npm packages (#5042) by @renovate[bot]
  • deps: lock file maintenance rust crates (#5043) by @renovate[bot]
  • deps: update taiki-e/install-action action to v2.54.0 (#5045) by @renovate[bot]
  • deps: update taiki-e/install-action action to v2.53.2 (#5041) by @renovate[bot]

[1.0.0-beta.19] - 2025-06-22

🚀 Features

  • support OutputOptions#manualChunks (#5037) by @hyf0
  • advanced-chunks: support advancedChunks#gruop#name to be function (#5035) by @hyf0
  • rolldown_plugin_import_glob: align with vitejs/vite#20163 (#5034) by @shulaoda
  • rust/advanced-chunks: support MatchGroup#name to be dynamic (#5033) by @hyf0
  • rolldown_plugin_build_import_analysis: align with vitejs/vite#20117 (#5027) by @shulaoda
  • rolldown_plugin_build_import_analysis: align with vitejs/vite#20115 (#5020) by @shulaoda
  • add validation warning for advanced chunks options without groups (#5009) by @sapphi-red

🐛 Bug Fixes

  • moduleInfo is not updated when entry module is emitted by this.emitFile (#5032) by @IWANABETHATGUY
  • preserveEntrySignatures: false generates circular imports that hangs with TLA (#5029) by @IWANABETHATGUY
  • rolldown_plugin_build_import_analysis: align pure dynamic import handling with rolldown-vite (#5016) by @shulaoda
  • plugin/vite-resolve: normalize leading slash (#5013) by @sapphi-red
  • debug: build_id doesn't increase (#5015) by @hyf0
  • side effects in this.emitFile({ type: 'chunk' }) is removed when preserveEntrySignatures: false is set (#5012) by @IWANABETHATGUY

🚜 Refactor

  • rolldown_utils: simplify block_on_spawn_all (#5019) by @shulaoda
  • use rolldown_utils::futures::block_on for WatcherImpl#start (#5018) by @shulaoda

📚 Documentation

  • jsdoc: document experimental.attachDebugInfo (#5028) by @hyf0
  • clarify that advancedChunks options are in bytes (#5022) by @sapphi-red
  • add a note that sequential conversion may break the code (#5024) by @sapphi-red

⚙️ Miscellaneous Tasks

  • infra: clean up dist before building rolldown (#5036) by @hyf0
  • Align status notice in readme with documentation (#5021) by @rijkvanzanten

❤️ New Contributors

  • @rijkvanzanten made their first contribution in #5021

[1.0.0-beta.18] - 2025-06-19

🚀 Features

  • advancedChunks: no need to include dependencies for PreserveEntrySignatures::False too (#5005) by @hyf0
  • analyze commonjs module side effects and remove unused module (#5003) by @IWANABETHATGUY
  • specially handling commonjs export stmt side effects (#5002) by @IWANABETHATGUY
  • rolldown: oxc v0.73.2 (#5000) by @Boshen
  • debug: attach both session_id and build_id to debug events (#4994) by @hyf0

🐛 Bug Fixes

  • rolldown_plugin_import_glob: correctly handle alias glob patterns (#5007) by @shulaoda
  • rolldown_plugin_alias: correctly handle resolved_id (#5006) by @shulaoda
  • imported namespace is missing after external import namespace merging (#4999) by @IWANABETHATGUY
  • node: add experimental.viteMode to option validator (#4996) by @sapphi-red
  • plugin/vite-resolve: optional peer dep id parse error (#4995) by @sapphi-red

🚜 Refactor

  • debug: remove extra mechanism for passing session_id and unnecessary passing of spans (#5001) by @hyf0

📚 Documentation

  • update description about directive handling (#4992) by @IWANABETHATGUY

⚙️ Miscellaneous Tasks

  • deps: update dependency rolldown-plugin-dts to v0.13.11 (#4863) by @renovate[bot]
  • infra: update changelog configuration in cliff.toml (#4961) by @shulaoda
  • infra: add knip to ci (#4991) by @webpro

[1.0.0-beta.17] - 2025-06-17

🚀 Features

  • binding: feat(binding): always use the same BindingBundler to create BindingBundlerImpl for the same RolldownBuild by @hyf0 in #4985
  • debug: feat(debug): cache large string by @hyf0 in #4882
  • feat: make require('./foo.json') work as expected even if the json is transformed to JS by a custom plugin by @IWANABETHATGUY in #4984
  • feat: add diagnostic for multiple entries with UMD/IIFE formats by @shulaoda in #4954

🐛 Bug Fixes

  • plugin/vite-resolve: fix(plugin/vite-resolve): importing an optional peer dep should throw an runtime error by @sapphi-red in #4980
  • fix: upgrade napi, fix wasm url by @sxzz in #4958
  • fix: should rewrite hmr related ast after test if experimental.hmr is enabled. by @IWANABETHATGUY in #4972

💼 Other

  • build: provide "type": "module" in package.json by @iiio2 in #4974

🚜 Refactor

  • binding: refactor(binding): rename Bundler to BindingBundleImpl by @hyf0 in #4983
  • rolldown: refactor(rolldown): migrate to ESM package by @sxzz in #4959

📚 Documentation

  • docs: explain how to transpile legacy decorators by @hyf0 in #4989
  • code-splitting: docs(code-splitting): make terms bold instead of wrapped with inline code block by @hyf0 in #4975
  • docs: improve advanced chunks by @hyf0 in #4966
  • docs: refine code splitting guide by @sapphi-red in #4969

🧪 Testing

  • test: place empty package.json to prevent all files to be treated as node mode by @sapphi-red in #4979

⚙️ Miscellaneous Tasks

  • infra: chore(infra): ensure pnpm install for common commands by @hyf0 in #4987
  • browser: chore(browser): add @oxc-project/runtime by @shulaoda in #4988
  • deps: chore(deps): update dependency tsdown to v0.12.8 by @renovate[bot] in #4977
  • deps: chore(deps): update npm packages (major) by @renovate[bot] in #4963
  • deps: chore(deps): lock file maintenance npm packages by @renovate[bot] in #4967
  • deps: chore(deps): lock file maintenance rust crates by @renovate[bot] in #4965
  • deps: chore(deps): lock file maintenance npm packages by @renovate[bot] in #4964
  • deps: chore(deps): update github-actions by @renovate[bot] in #4962

❤️ New Contributors

  • @iiio2 made their first contribution in #4974

[1.0.0-beta.16] - 2025-06-15

🚀 Features

  • rolldown: feat(rolldown): oxc v0.73.0 by @Boshen in #4948
  • types: feat(types): generate HMR runtime types by @sapphi-red in #4928
  • rolldown_plugin_build_import_analysis: feat(rolldown_plugin_build_import_analysis): align with rolldown-vite by @shulaoda in #4931
  • feat: allow to configureexperimental#attachDebugInfo: 'none' to disable generating #region comments by @TheAlexLichter in #4918

🐛 Bug Fixes

  • fix: deduplicate entry point by @IWANABETHATGUY in #4956
  • fix: diagnostic message on minified code is too long to be readable by @IWANABETHATGUY in #4950
  • fix: deduplicated entry points when have same id, name, and filename by @IWANABETHATGUY in #4947
  • fix: unbundle does not work with outExtensions by @IWANABETHATGUY in #4945
  • types: fix(types): remove undefined from return type of generateHmrPatch and hmrInvalidate by @sapphi-red in #4943
  • fix: handle error in hmrInvalidate by @sapphi-red in #4942
  • rolldown_plugin_build_import_analysis: fix(rolldown_plugin_build_import_analysis): preload helper is imported even if it’s not needed by @shulaoda in #4936
  • hmr: fix(hmr): avoid panic after syntax error by @sapphi-red in #4898
  • strictExecutionOrder: fix(strictExecutionOrder): ensure initialization chain of entry exports by @hyf0 in #4933
  • fix: should not panic when meet a syntax error in watch mode. by @IWANABETHATGUY in #4926
  • fix: regression, id filter normalization for windows is not working by @IWANABETHATGUY in #4922
  • rolldown_plugin_json: fix(rolldown_plugin_json): incorrect default JSON export by @shulaoda in #4924

🚜 Refactor

  • refactor: avoid unnecessary collect by @IWANABETHATGUY in #4949
  • refactor: get normalized options via binding by @IWANABETHATGUY in #4938
  • refactor: include DevRuntime base class even if custom HMR implementation is passed by @sapphi-red in #4929

📚 Documentation

  • docs: clarify minifier state by @TheAlexLichter in #4953
  • docs: drafting code splitting by @hyf0 in #4951
  • docs: add link to repl by @sxzz in #4917
  • pluginutils: docs(pluginutils): add example to simple filter functions by @sapphi-red in #4915

🧪 Testing

  • test: add testcase for normalized output options by @IWANABETHATGUY in #4939
  • hmr: test(hmr): enable expectExecuted for generatePatchError test by @sapphi-red in #4937
  • test: evaluate hmr tests in node by @sapphi-red in #4930
  • test: add "non used export" hmr test by @sapphi-red in #4900
  • test: enable expectExecuted in HMR tests by @sapphi-red in #4927

⚙️ Miscellaneous Tasks

  • deps: chore(deps): lock file maintenance npm packages by @renovate[bot] in #4866
  • infra: chore(infra): remove comments related to cspell by @shulaoda in #4940
  • ci: remove cargo bench test by @IWANABETHATGUY in #4925

[1.0.0-beta.15] - 2025-06-11

🚀 Features

  • feat: make native json plugin callable by @shulaoda in #4908
  • feat: support preserveSignature in this.emitFile by @IWANABETHATGUY in #4895
  • rolldown_plugin_module_preload_polyfill: feat(rolldown_plugin_module_preload_polyfill): expose plugin config by @shulaoda in #4896

🐛 Bug Fixes

  • fix: add missing pathe polyfill by @sxzz in #4912
  • node: fix(node): call options hook for experimental_scan by @sapphi-red in #4911
  • fix: better NoEntryPoint error message by @IWANABETHATGUY in #4903
  • fix: fail to bundle when provide entryPoint dynamiclly by @IWANABETHATGUY in #4902

🧪 Testing

  • pluginutils: test(pluginutils): add query suffix case for makeIdFiltersToMatchWithQuery by @sapphi-red in #4914
  • test: copy rollup preserveEntrySignature override-via-plugin test by @IWANABETHATGUY in #4910
  • test: include error in hmr test snapshots by @sapphi-red in #4899

⚙️ Miscellaneous Tasks

  • chore: update committed dts by @sapphi-red in #4913
  • chore: bump rolldown-ariadne by @IWANABETHATGUY in #4909
  • improve prepare release commit message by @Boshen

[1.0.0-beta.14] - 2025-06-10

💥 BREAKING CHANGES

  • refactor!: move preserveEntrySignatures from output to input options by @IWANABETHATGUY in #4871

🚀 Features

  • strictExecutionOrder: feat(strictExecutionOrder): no need to generate plain chunk imports for addressing side effects by @hyf0 in #4890
  • feat: make wasm fallback plugin callable in node by @shulaoda in #4885
  • rolldown_plugin_module_preload_polyfill: feat(rolldown_plugin_module_preload_polyfill): align with rolldown-vite by @shulaoda in #4884
  • attachDebugInfo: feat(attachDebugInfo): improve format and distinguish dynamic entries by @hyf0 in #4861

🐛 Bug Fixes

  • binding: fix(binding): preserveModules infinity loop by @Brooooooklyn in #4879
  • fix: dynamic import does not return exports when preserveEntrySignatures: false is set and the importee is an entry by @IWANABETHATGUY in #4891
  • fix: preserveEntrySignatures panics with an edge case by @IWANABETHATGUY in #4877
  • fix: directives are missing with preserveModules by @IWANABETHATGUY in #4876
  • fix: exports from dynamically imported chunks are removed by @IWANABETHATGUY in #4875

🚜 Refactor

  • refactor: clearify Chunk entry kind by @IWANABETHATGUY in #4892
  • rolldown_plugin_build_import_analysis: refactor(rolldown_plugin_build_import_analysis): align the logic with rolldown-vite by @shulaoda in #4856

📚 Documentation

  • contrib-guide: docs(contrib-guide): add HMR testing section by @sapphi-red in #4888
  • guide: docs(guide): update release channels - remove nightly, add pkg.pr.new by @Boshen in #4881

🧪 Testing

  • test: rename rolldown/topics/hmr/mutiply-entires to snake case by @sapphi-red in #4889
  • test: add test for #4849 by @sapphi-red in #4887
  • test: setup infra for hmr tests by @sapphi-red in #4886

⚙️ Miscellaneous Tasks

  • ci: disable publish to nightly by @Boshen in #4874
  • ci: extend Vite tests timeout by @sapphi-red in #4870
  • fix publish-to-npm.yml by @Boshen

◀️ Revert

  • revert: "refactor(rolldown_plugin_load_fallback): align with rolldown-vite" by @shulaoda in #4868

[1.0.0-beta.13] - 2025-06-07

🚀 Features

  • feat: merge same ImportNamespaceSpecifier for external module by @IWANABETHATGUY in #4373

🐛 Bug Fixes

  • ci: disable generate_release_notes by @Boshen

📚 Documentation

  • docs: add MAINTENANCE.md; remove rolldown.rs/contrib-guide/release by @Boshen in #4854

⚙️ Miscellaneous Tasks

  • add input description to prepare-release.yml by @Boshen
  • fix prepare-release.yml by @Boshen
  • CHANGELOG.md: ci(CHANGELOG.md): use git-cliff to generate changelogs by @Boshen in #4858

1.0.0-beta.12 (2025-06-06)

Features

  • preseveEntrySignature: allow-extension (#4800) (83d4d62)
  • advancedChunks: only move the captured module itself if preserveEntrySignatures is allow-extension (#4847) (57e7f8b)
  • interop import('some-cjs-module.js') (#4816) (b9ac5f0)
  • rolldown: oxc v0.72.3 (#4845) (759525d), closes #4796 #4846
  • support preserveEntrySignatures: exports-only (#4848) (63dc546)
  • support preserveEntrySignatures: false (#4844) (e4e90e9)
  • take node esm spec into account for dynamic imports in cjs modules that satisfy nodejs (#4819) (640af3a), closes #4289

Bug Fixes

Features

  • add index_of_one utils for Bitset (#4779) (16aff17)
  • advancedChunks: support function for output.advancedChunks.groups[].test (#4644) (0a177d4), closes #4477
  • node: support Rollup-style JSX options (#4756) (2c4c2a8), closes #4752
  • rolldown_plugin_isolated_declaration: improve diagnostic messages (#4731) (87188ed), closes #4040
  • warn when assignment to bundle is detected (#4792) (833c4e0)

Bug Fixes

⚠ BREAKING CHANGES

  • "feat!: always make the default value of platform as browser" (#4720)
  • resolve: add module to resolve conditions by default (#4703)
  • types/resolve: use literal 'import-statement' to refer to static import statements instead of 'import' (#4689)
  • rust: merge target option into transform (#4665)
  • rust: merge jsx option into transform (#4654)
  • always make the default value of platform as browser (#4611)

Features

  • add preserveEntrySignatures option (#4640) (3979e2a)
  • always make the default value of platform as browser (#4611) (43425a0)
  • binding: preserveModulesRoot (#4631) (51df2b7)
  • ci: apply cargo shear --fix correctly in autofix (#4677) (15934eb)
  • debug: add StmtSideEffect to record the specific reason why a stmt has side effect (#4671) (5982115)
  • debug: emit more details for Module[#imports](https://github.com/rolldown/rolldown/issues/imports) (#4619) (42afd5a)
  • enable cjs ns merge for react (#4621) (ddf8da8)
  • enable loose mode validate option and give warning (#4638) (080ce4e)
  • on_demand_wrapping: don't wrap modules that don't rely on others and have side effect (#4670) (326e6f5)
  • plugin/json: only transform module with moduleType: 'json' (#4554) (c69e332)
  • rolldown_plugin_oxc_runtime: support automatic resolution of oxc runtime helpers (#4641) (b09c035), closes #4597
  • rolldown_plugin_utils: extract check_public_file from rolldown_plugin_asset (#4660) (1b3b8c3)
  • rolldown_plugin_utils: extract file_to_url from rolldown_plugin_asset (#4663) (40290b5)
  • rolldown_plugin_utils: support create_to_import_meta_url_based_relative_runtime (#4657) (d77354f)
  • rolldown_plugin_utils: support to_output_file_path_in_js (#4659) (9e8c677)
  • rolldown: oxc v0.71.0 and napi beta (#4618) (76c39c6), closes #4614
  • rolldown: oxc v0.72.0 (#4658) (8371a90)
  • rolldown: oxc v0.72.1 and oxc-resolver v11 (#4718) (79a47fc)
  • rust: merge jsx option into transform (#4654) (4872097), closes #4447
  • rust: merge target option into transform (#4665) (f9aa33a), closes #4651
  • rust: preserveModulesRoot (#4630) (9f62c77)
  • support to attach chunk debug information in output (#4633) (1079582)

Bug Fixes

  • chunk.name is not sanitized when the chunk is a common chunk (#4712) (5949f2a), closes #4709
  • preserveModules co exists with multi entrypoints (#4626) (b46bdea), closes #4624
  • preserveModules don't respect relative path (#4629) (9727493)
  • browser: disable oxc runtime plugin (#4708) (0ec9e7d), closes #4707
  • ci: add missing just in warmup workflow (c6a1eb1)
  • ci: cache release builds to a different cache key (a002b24)
  • ci: cache warmup should include build artifacts (#4675) (0f2c3b5)
  • ci: fix double pnpm cache from setup-node (#4685) (db25788)
  • ci: fix release build (#4691) (82620b9)
  • ci: fix template-injection in benchmark-rust (57b2792)
  • ci: fix template-injection in publish-to-npm-for-nightly-canary.yml (352340f)
  • ci: in metrics, use cache instead of cargo fetch (937eae9)
  • ci: pnpm install --ignore-scripts (#4696) (e040112)
  • cjs namespace merge in incremental build (#4613) (b1c500e)
  • dynamic chunk not exported when using preserveModules (#4650) (d91dfb5)
  • exported dynamic import is treated as unused (#4648) (edf5b4e), closes #4646
  • generated wrapper stmt info should be always included on demand (#4639) (ed553e1)
  • index out of bounds panic at oxc_index-3.0.0 with recent canary version (#4713) (3fad6f4)
  • inlineDynamicImports: ensure tla module execution correctly (#4627) (e9ef28c)
  • partial cjs namespace merge with chunk split (#4598) (83a0b40)
  • partial merge cjs namespace (#4595) (0085f4a)
  • removing unused dynamic imported chunks (#4655) (fe21db7)
  • resolve: add module to resolve conditions by default (#4703) (9727531)
  • rolldown/browser: auto-resolve oxc runtime helpers (#4645) (701bbc3), closes #4641
  • rust: avoid panic in into_assignment_target (#4688) (6c806ea), closes #4304
  • sort dynamic entires with topological order before tree shake. (#4694) (bc96622)
  • strict_execution_order: runtime module should not be wrapped by default (#4692) (4008ac0)
  • strict_execution_order: wrapped module should be included on demand (#4687) (7c21036)
  • strip path for require identifier with preserveModules (#4704) (2ba8e28), closes #4700
  • types/resolve: use literal 'import-statement' to refer to static import statements instead of 'import' (#4689) (eee51d8)
  • watch: watch linux path at windows (#4625) (ed594aa)

Performance Improvements

  • change profile.dev.debug to improve rust compile times (#4623) (0312f66)
  • rolldown: prevent duplicate text embedding with include_str! (#4664) (8fee5af), closes #4354

Reverts

  • "feat!: always make the default value of platform as browser" (#4720) (4021325), closes rolldown/rolldown#4611
  • "refactor(rolldown_sourcemap): remove unused SourceJoiner[#prepend](https://github.com/rolldown/rolldown/issues/prepend)_source" (#4632) (719ec89), closes rolldown/rolldown#4431
  • feat(on_demand_wrapping): don't wrap modules that don't rely on others and have side effect [#4670](https://github.com/rolldown/rolldown/issues/4670) (#4686) (8a77ce9)

    1.0.0-beta.9 (2025-05-19)

⚠ BREAKING CHANGES

  • rolldown: update to oxc@0.70.0 to refine printing comments (#4562)
  • align directive rendering with esbuild (#4557)
  • don't expose And class in pluginutils (#4537)
  • add OutputOptions#legalComments and remove OutputOptions#comments (#4528)
  • expose withFilter function via rolldown/filter instead of rolldown (#4369)
  • allows users to specify filter expressions directly using an array syntax instead of an object with a "custom" key (#4368)
  • use camel cases for package.json#exports field (#4366)
  • filter expr binding conversion (#4343)

Features

  • add OutputOptions[#legal](https://github.com/rolldown/rolldown/issues/legal)Comments and remove OutputOptions[#comments](https://github.com/rolldown/rolldown/issues/comments) (#4528) (aa7e253)
  • add watcher.off method to remove event listener (#4388) (ca23f2d), closes #4382
  • allow to preserve legal comments with minify: true (#4591) (9a837fc)
  • allows users to specify filter expressions directly using an array syntax instead of an object with a "custom" key (#4368) (4a50b6d)
  • better error message for manualChunks (#4530) (5b8c925)
  • builtin-plugin: expose webWorkerPostPlugin (#4594) (d89470c)
  • cleanUrl rust interpreter (#4480) (1988c3d)
  • debug: add call_id to load and transform events (#4296) (432acb3)
  • debug: distinguish if resolve_id hook is called automatically or manually (#4254) (1b90f35)
  • debug: emit ModuleGraphReady event (#4515) (29d88da), closes #4135
  • debug: inject call_id for each pair of HookResolveIdCall events (#4255) (d93e66e)
  • expose isolatedDeclaration (#4410) (92d35c5)
  • expose loadConfig in api (#4428) (9a4338e), closes #4313
  • expose oxc-resolver (#4485) (8aae298)
  • filter expr binding conversion (#4343) (6c73e55)
  • filter expression node binding types (#4340) (684e2b5)
  • hmr: handle import.meta.hot.invalidate (#4339) (9725513)
  • hmr: support sourcemap (#4570) (d3b21fe)
  • implement filter expr filtering (#4346) (d35f587)
  • introduce filter expression (#4323) (21b9e45)
  • make BindingMinifyOptions fields optional (#4307) (165d0b1), closes #4306
  • make RolldownBuild.watchFiles to async (#4520) (4666852)
  • merge emitDecoratorMetadata from tsconfig.json (#4555) (3f14835), closes #4552
  • move filter related utils to @rolldown/pluginutils (#4429) (f932e9e)
  • output.virtualDirname (#4521) (2e52dbc)
  • parse filter expr (#4338) (e394f40)
  • partial preserveModules impl (#4456) (a3b1473)
  • plugin/transform: allow readonly array for options (#4266) (86482ea)
  • plugin/vite-resolve: port changes after Vite 6 (#4269) (7c1fae3), closes #4270
  • plugin: support code filter for renderChunk hook (#4351) (ef1f137), closes #4231
  • pluginutils: Query filter impl (#4535) (6c06a1c)
  • pluginutils: add exactRegex and prefixRegex (#4458) (7c58822)
  • pluginutils: add makeIdFiltersToMatchWithQuery function (#4469) (75757fa)
  • preserveModules (#4457) (4b0464e)
  • rolldown_error: add necessary id for some errors (#4533) (d4801c4), closes #4427
  • rolldown_plugin_asset_import_meta_url: initialize assetImportMetaUrlPlugin (#4563) (84c4bac)
  • rolldown_plugin_asset: align resolveId with rolldown-vite (#4545) (d6e2358)
  • rolldown_plugin_asset: initialize asset plugin (#4541) (51bbd05)
  • rolldown_plugin_asset: partially align load hook with rolldown-vite (#4561) (a58cdd9)
  • rolldown_plugin_dynamic_import_vars: basic support for custom resolver (#4333) (ad5315f), closes #3968
  • rolldown_plugin_dynamic_import_vars: complete basic alignment work (#4334) (1fd551c), closes #3968
  • rolldown_plugin_dynamic_import_vars: introduce resolver option (#4309) (89aa613), closes #3968
  • rolldown_plugin_dynamic_import_vars: prepare for custom resolver (#4328) (a15677b), closes #3968
  • rolldown_plugin_dynamic_import_vars: support include and exclude (#4288) (c4e6cad), closes #3968
  • rolldown_plugin_import_glob: support brace expansion (#4121) (54afc8f), closes #3982
  • rolldown_plugin_reporter: align the logic in renderChunk hook (#4464) (db88da2), closes #3968
  • rolldown_plugin_reporter: basically align behavior with rolldown-vite (#4475) (90102d7), closes #3968
  • rolldown_plugin_reporter: further aligned with rolldown-vite (#4476) (3985436), closes #3968
  • rolldown_plugin_reporter: prepare for chunk reporting (#4449) (e270f24), closes #3968
  • rolldown_plugin_web_worker_post: align with rolldown-vite (#4576) (0d7e06c)
  • rolldown: oxc_resolver v8 (#4392) (0de485b)
  • rolldown: bump oxc_resolver to v7.0 (#4367) (63723d5)
  • rolldown: expose experimental entry for browser (#4446) (069b04b)
  • rolldown: expose ModuleTypes type (#4506) (513a17a)
  • rolldown: oxc v0.66.0 (#4275) (35ee0e7)
  • rolldown: oxc v0.68.1 (#4405) (4d4df59)
  • rolldown: oxc v0.69.0 (#4478) (4940c31)
  • rolldown: oxc v0.76.0 (#4345) (86ed7c3)
  • rolldown: oxc_resolver v9.0.0 (#4462) (9ef061d)
  • rolldown: update to oxc@0.70.0 to refine printing comments (#4562) (1c583fe)
  • rust: execute cjs as it is (#4465) (5becdcf)
  • rust: impl Query filter (#4542) (8a5f862)
  • rust: initialize rolldown_plugin_vite_css (#4418) (f2531a6)
  • rust: support LegalComments::Inline (#4444) (6921d6c)
  • support extra IdParams and cleanUrl (#4479) (55a9209)
  • support variadic args for or and and filter expr (#4371) (3fe195c)
  • types: allow rollup plugin to be assigned to plugins option (#4568) (42e496f)
  • types: expose more watcher related types (#4383) (21263e5)
  • validate hoistTransitiveImports (#4262) (ac258d5)
  • watcher: support result.close at bundle end event (#4423) (f579291)
  • watch: support result.close at error event (#4424) (7bb3956)

Bug Fixes

  • asset ModuleType not available in TypeScript package (#4489) (8ac92a4)
  • add debug information for debug wasm binaries (#4549) (cc66f4b)
  • align directive rendering with esbuild (#4557) (709eb63)
  • align resolve extension order with esbuild (#4277) (6565161)
  • align sanitize_filename with rollup (#4244) (d53650c)
  • align validator with the actual types for output.polyfillRequire / output.minify.deadCodeElimination (#4294) (6e313e1)
  • chunk level directives rendering (#4551) (a16881d), closes #4548
  • chunk_exports: Prevent duplicate external module imports (#4408) (f90a05f), closes #4406
  • chunk.imports should include external imports (#4315) (62dee06)
  • ci: fix incorrect tag name for lychee-action (#4352) (2531185)
  • cli: ROLLUP_WATCH should be set when config is loaded (#4293) (f845728), closes #3967
  • cli: invalid type used with --target (#4407) (8cce9fc), closes #4387
  • consolidate log related types (#4355) (0174d14), closes #4330
  • debug: ensure emitting json object per line and correct types (#4295) (1d1fa3d)
  • don't minify .d.ts related chunk (#4240) (d984417)
  • dynamic import with backquotes are not bundled (#4435) (76c6380)
  • ensure executing of plain imported cjs, fixes #4443 (#4468) (df9b4ee)
  • hmr: accpet deps (#4314) (6aca0ce)
  • hmr: aovid using quote_stmt, it make sourcemap panic (#4571) (7b949a0)
  • hmr: enable incremental_build (#4298) (7209cf3)
  • hmr: export full reload info if reach to hmr root (#4242) (9b57bd3)
  • hmr: hmr chunk execute dependencies before create import.meta.hot (#4320) (2a06dfe)
  • hmr: make sure runtime module imported for each chunk (#4438) (4d444b0)
  • hmr: normalize hmr chunk sourcemap sources path (#4572) (6691f45)
  • hmr: preserve original import.meta.hot when no HMR context exists (#4391) (bc78fa1), closes #4390 #4370
  • hmr: reexport named declaration (#4319) (3858daa)
  • hmr: register cjs module exports (#4511) (66f4623)
  • hmr: remove duplicated import statment (#4556) (69aebee)
  • hmr: rewrite import default/namespace reference (#4299) (a0733d0)
  • hmr: rewrite import.meta.hot (#4370) (7b030ee)
  • moduleSideEffects function should also apply to external module (#4305) (77c8935)
  • node: add type property to RenderedChunk (#4553) (8ca4fde)
  • node: ensure comments option got passed to rust (#4527) (35571e5), closes #4491
  • plugin/vite-resolve: align default externalize logic with Vite (#4247) (a37e704)
  • plugin/vite-resolve: external was serialized incorrectly (#4270) (3a98131)
  • preserveModules cjs interop (#4529) (1e7b372)
  • render_chunk_exports: add missing semicolon to exported value assignment (#4498) (8739f25), closes #4459
  • rolldown_plugin_transform: use or instead of xor for transformOptions.lang (#4587) (ef90f2e)
  • rolldown_transform_plugin: incorrect detection of file extension (#4241) (eae9262), closes #3881
  • rust: ramdom segmentation fault (#4473) (42fd8e2)
  • should not convert module to cjs if there exists toplevel this but no module,exports used (#4514) (f606614)
  • should not throw for circular cjs imports, fixes #3529 (#4467) (3240812)
  • should rewrite jsx_name when jsx: preserve (#4516) (d95f99e)
  • should try to resolve .json extension by default (#4276) (e84206b), closes #4274
  • transform hook code filter does not work (#4386) (a720367), closes #4379
  • use correct FileTemplate when enable preserve_modules (#4517) (a779c8c)
  • using original error if normalize original plugin error has error (#4263) (d378cad)
  • watch-cli: call result.close at bundle end or error (#4426) (55efe08)
  • watch: allow call result.close multiply times (#4425) (e19ea12)

Performance Improvements

  • avoid allocating unnecessary memory in runtime for module_types map (#4301) (f675391)
  • enable Wasm 128bit SIMD Extension (#4484) (9d84ea8)
  • reduce wasm release binary size (#4547) (bf53a10)
  • rename: reduce some string allocations (#4487) (c51bc5c)
  • rolldown_plugin_alias: avoid unnecessary to_string allocations (#4268) (bf18d12), closes #3968
  • rolldown_plugin_json: change register_hook_usage to return HookUsage::Transform (#4375) (baf6ca1), closes #3968
  • rolldown: reduce size of ModuleLoaderMsg from 1472 to 24 bytes (#4496) (71d87e5)
  • rolldown: remove ArcStr usages in finalize_chunks (#4494) (4dcaa00)
  • rolldown: speedup extract_hash_placeholders with memchr (#4495) (38fd4b8)
  • rust: improve PreProcessor[#visit](https://github.com/rolldown/rolldown/issues/visit)_export_named_declaration (#4419) (f7e95d8)

Miscellaneous Chores

  • don't expose And class in pluginutils (#4537) (985af6d)
  • expose withFilter function via rolldown/filter instead of rolldown (#4369) (ead9749)
  • use camel cases for package.json[#exports](https://github.com/rolldown/rolldown/issues/exports) field (#4366) (2fa6d40)

1.0.0-beta.8 (2025-04-22)

Bug Fixes

  • attach more comments related to export decl (#4219) (a684277)
  • avoid empty line at the beginning of emitted chunks caused by file without imports (#4179) (a3b5f54), closes #4150
  • avoid hang if load error (#4056) (f262f1f)
  • avoid load again if load success at concurrent load (#4156) (821fc82)
  • build: handle empty dependencies in rolldown configuration (#4108) (934d75d)
  • clear js side cache at bundle fininsh (#4158) (10afd61)
  • convert severity of missing_export diagnostic to warning when importee module is ts/tsx (#4147) (57ae80d)
  • correct bundle size calculation (#3994) (748d395)
  • correct the behavior when multiple transform filter option are specified (#4059) (92f7cc6)
  • debug: prevent multiple writes on the same file (#4117) (9131bdc)
  • deconfilct chunk name after name generated (#4191) (1534f4a)
  • don't unwatch files when close watcher (#4105) (729b6cb), closes #4084
  • filter should not stabilize args.specifier (#3972) (85c4bdd)
  • filter test case (#3975) (eeb1005)
  • hmr: should generate correct commonjs wrapper (#4131) (afae765), closes #4129
  • hmr: should register cjs exports differing from esm (#4132) (ca47ca2)
  • isolated_declaration: skip external id (#4026) (8b7c824)
  • make sure flush before write into stdio (#4157) (85dcb2a)
  • named_function_expression_argument (#4074) (e95a392), closes #4045 #4061
  • node: ensure this.meta.watchMode is true in watch mode (#3969) (7ddcaea), closes #3960
  • node: fix webcontainer fallback for cjs rolldown + silence pkg.pr.new check error (#3958) (465ee23)
  • node: resolveId id filter is optional (#3991) (c7e4434)
  • preserve leading comments of export default decl (#4122) (e3ab62a), closes #4006
  • rolldown_plugin_transform: incorrect detection of source_type (#4214) (bfe3e9e), closes #4203
  • rolldown_utils: normalize ids before filtering (#3955) (dc245f0)
  • runtime module should get executed first always (#3978) (1c679ee), closes #3650
  • rust: preserve-legal should correspond to Comments::PreserveLegal (#4137) (cef50bd), closes #4118
  • rust: avoid panic when assetFileNames hash length exceeds 22 (#4019) (86710df), closes #4016
  • rust: crashes with object containing shorthand to NaN (#4197) (7d55cda), closes #4196 #4123
  • support nested plugin for withFilter (#4106) (698bd4c)
  • typo in example code (#4167) (31e3f1b)
  • validate hmr option (#4067) (c1d0963)

Features

Performance Improvements

1.0.0-beta.7 (2025-03-24)

Bug Fixes

  • check dummy record in all import_records.iter (#3930) (2519603)
  • ci: fix broken metric workflow (#3944) (1df6407)
  • determine a module side effects for require a module that can't analyze statically (#3928) (3909fcb), closes #3926
  • mark export all stmt as side effects free (#3897) (0f36c01)
  • metrix ci broken (#3924) (f115e7a)
  • normalize oxc minify keep_names with keep_names option (#3948) (126f3e0)
  • reuse JSON.parse wrapper from oxc-parser (#3904) (1726b6a)
  • tasks/generator: ensure just update-generated-code runs correctly on Windows (#3900) (ca73e82)
  • tasks/generator: ensure consistent path on Windows (#3901) (df042b0)

Features

  • add data structure that used for incremental build (#3932) (8c0b950)
  • add HookTransformAstArgs#stable_id (#3920) (15cb25a)
  • add isolated_declaration plugin (#3894) (529a7be)
  • hmr/poc: change visited map to use VisitState enum for better state management (#3908) (1fd3698)
  • incremental rebuild (#3934) (0b03e35)
  • isolated_declaration: add stripInternal option (#3902) (8f5f8f1)
  • isolated-declaration: emit typing for imported or exported typing module (#3910) (458a62d)
  • make ScanStageOutput cloneable (#3923) (47fe675)
  • make transform_ast hook to async (#3891) (b150e1b)
  • node/hmr: ensure only invoke hmr process if there are live connections (#3907) (9cb523f)
  • node/wasi: add private @rolldown/wasi to prepare to distribute wasm binary in a friendly way (#3925) (53faf0c)
  • remove unused import(...) if importee doesn't have side-effects (#3911) (0ac283b), closes #2827
  • support meta#chunks at render_chunk hook (#3898) (8fd9481)

Performance Improvements

1.0.0-beta.6 (2025-03-17)

1.0.0-beta.5 (2025-03-17)

Bug Fixes

  • cli: fix and improve error message when validating cli options (#3813) (64993bb)
  • cli: remove duplicate error message in stack trace (#3828) (79fea00)
  • dataurl plugin resolve panic (#3822) (251e281)
  • generate sourcemapMappingUrl reference properly (#3849) (2b0f20f), closes #3845
  • renovate: dependencyDashboard is not a preset (#3862) (607e112)

Features

  • calculate relative external module rendered path (#3855) (e0cd410)
  • emit diagnostic when configuration field conflict (#3854) (d0e0a63)
  • filter out diagnostics disabled in checks options (#3846) (4524a58)
  • hmr/rust: invoke transform hook on affected hmr module (#3866) (296d605)
  • hmr/rust: reuse existing ModuleLoader (#3865) (b4dd209)
  • hmr: enhance error handling by wrapping program body in a try-catch block (#3825) (007805a)
  • hmr: inject ModuleHotContext for each module (#3832) (30b9a0b)
  • hmr: support HMR on editing non-hmr-boundary module (#3853) (568197a)
  • hmr: wrap module code into a function (#3851) (8a7b7d1)
  • memorize importer's idx for each moodule (#3852) (3a7758f)
  • support absoulte/relative external (#3834) (d8f0bcb)

Performance Improvements

  • use mimalloc-safe which is maintaining by us (#3869) (6b9d148)

1.0.0-beta.4 (2025-03-11)

Bug Fixes

  • imports with only types are removed even if verbatimModuleSyntax is true (#3784) (ff8d19d), closes #3777
  • windows panic (#3436) (bc5b1e7)
  • keepNames with function declaration panic (#3687) (6016b3c)
  • add sequential?: boolean type for rollup compat (#3442) (e9daf93)
  • add wrong is_cjs_reexport flag (#3532) (c2bcb3d)
  • advanced_chunks: unexpected behavior with maxSize (#3641) (8b59091)
  • avoid generate asset filename panic if emit file with fileName (#3423) (794a63d)
  • avoid preliminary filenames conflict (#3460) (aeb352c)
  • auto polyfill import.meta.* in none esm format (#3454) (287a616)
  • avoid call outputOptions hook at close (#3601) (48b1b86)
  • avoid duplicated init_esm call (#3707) (6eafc2f)
  • build-binding script should reuse passed args (#3774) (77623da)
  • chunk sorting total order (#3451) (73116ab)
  • chunk.modules should order by exec_order (#3638) (8219a83)
  • cjs: ensure esm namespace always exist (#3693) (f0301a6), closes #3619 #3529
  • cli doesn't show config loading error details (#3464) (e048f55)
  • cli: cli default option (#3613) (93d8731)
  • consider require ExpressionIdentfier as a import record (#3428) (2410ee7), closes #3395
  • deconflict export alias (#3457) (fdb55d5)
  • diagnostic in minified file significantly slow down the build (#3498) (2efa799), closes #3455
  • don't enable drop_console when compress is true (#3639) (2382047)
  • entry chunk name should respect sanitizeFileName (#3618) (4ec8869)
  • escape import/export module name and json key (#3458) (4ccaf24)
  • fix ROLLUP_FILE_URL for emitted chunks (#3507) (63b4e88)
  • glob import from parent dir (#3614) (59c5da5)
  • glob_import: return absolute paths for absolute globs (#3701) (eec83c9)
  • hash: should calculate hash dependenies correctly (#3522) (c34d2d4)
  • hash: should compute cross chunk dependecis in stable order (#3524) (52119c7), closes #3453
  • load mts config without type module (#3750) (64998fb)
  • make default sanitizeFilename compatible with rollup (#3431) (67ec7d7), closes #3418 #3418
  • make diagnostic message for eval build event easier to understand (#3766) (efafb0f), closes #3759
  • making return type compatible with rollup/parseAst (#3586) (659cbd3)
  • manifestPlugin: manifest fileds should be camelCase (#3551) (011af34)
  • mf: add remote esm module __esModule flg (#3569) (22d8cf4)
  • minify with jsx preserve (#3730) (d6de53c)
  • minify: disable top_level option for iife format (#3647) (335d3d6)
  • node: add rolldown dist typing check (#3516) (32880da)
  • node: allow output.minify: 'dce-only' (#3805) (e170e6e)
  • node: allow updating sourcemap.debugId by plugins (#3749) (c83cc30)
  • node: EmittedFile type compat (#3745) (55ddf7d)
  • node: make in for additional properties in OutputChunk work (#3635) (cec60e3)
  • node: proxy moduleSideEffects for moduleInfo (#3510) (cc2d779), closes #2781
  • node: tsc build only emit declaration (#3509) (9c0032c)
  • NormalizedOutputOptions option (#3582) (0bfe751)
  • NormalizedOutputOptions sourcemapIgnoreList (#3714) (34556a5)
  • prefix async to runtime helper if module has top level await (#3696) (c4a1aae), closes #3686
  • preserve this for PluginContext#emitFile (#3683) (ca89c63), closes #3634
  • preserve this for PluginContext#getModuleInfo (#3634) (8346be7)
  • regressed from renovate bot (#3484) (d660852)
  • replace all global require to __require when necessary (#3469) (cfcc101)
  • rust: dynamically importing JSON with output.advancedChunks.groups (#3584) (a7e403e), closes #3437 #3343
  • rust: generate specified hash length for emitted asset filenames (#3740) (b770d2c), closes #3737
  • rust: only replace specified-length placeholders for the hash type (#3736) (f4abf32)
  • should consider void expr as side effects free if expr is side effects free (#3479) (857a285), closes #3478
  • should generate correct pattern for cross chunk symbols (#3296) (54fd0f1)
  • splitting: indirect external symbol (#3405) (89db1f3)
  • stackblitz merge_transform_options failed (#3732) (79b9463)
  • stackoverflow when update cjs module meta (#3530) (ece5e77)
  • suppress unresolved require error in try catch block (#3605) (b546e53)
  • sync other moduleSideEffects value in ModuleInfo (#3520) (f65bde3), closes #2781
  • synchronize js ModuleInfo mutation to rust side (#3518) (8922436), closes #2781
  • syntax error when use top level await with strict_execution_order option (#3512) (558ea78)
  • tla: detecting TLA in top level block scope (#3552) (747e54d)
  • top level this substitution (#3567) (89eac9e)

Features

Performance Improvements

  • advanced_chunks: remove unnecessary sorting (#3655) (b814905)
  • avoid unnecessary alloc in to_base64 (#3462) (92d10c3)
  • binding: modules property in RenderedChunk (#3533) (06b6bbf)
  • plugin_dynamic_import_vars: remove Regex (#3702) (3337767)
  • reduce clone of transform_options (#3782) (73fa972)
  • reduce memory alloc for StmtInfo (#3590) (b0898a8)
  • remove unnecessary to_string (#3715) (0ba0ac4)
  • replace data url parse with nom (#3677) (ca90fa2)
  • rolldown_plugin_replace: replace static Regex with pure function (#3690) (e1deaff)
  • rolldown_utils: remove replace placeholder Regex (#3691) (582886c)
  • rust: avoid emitted_filenames to hash twice (#3504) (9404df1)
  • rust: avoid unnecessary into_owned on Cow<str> (#3470) (cdeedac)
  • rust: avoid unnecessary source clone (#3815) (a22cfd2)
  • rust: improve get_lived_entry (#3665) (6e16c3c)
  • should not invalidate ModuleOptions if mutate ModuleInfo has same id with hook param (#3519) (370af62)

1.0.0-beta.3 (2025-01-23)

Bug Fixes

  • dynamic tree shaking more await syntax (#3399) (f11bf03), closes #3396
  • force cjs wrapper to be included in the output (#3400) (8a5eba0)
  • should not set default value for treeshake in cli normalization (#3398) (72ddc66), closes #3392
  • shouldn't generate unused __toESM calls (#3401) (5deb279)
  • sort function panic due to user-provided comparison function does not correctly implement a total order (#3384) (4986046)

Features

1.0.0-beta.2 (2025-01-20)

Bug Fixes

Features

Performance Improvements