What's Changed
⚠ BREAKING CHANGES
- resolve: add
moduleto resolve conditions by default (#4703) - types/resolve: use literal
'import-statement'to refer to static import statements instead of'import'(#4689) - rust: merge
targetoption intotransform(#4665) - rust: merge
jsxoption intotransform(#4654)
Features
- add preserveEntrySignatures option (#4640) (3979e2a)
- always make the default value of
platformasbrowser(#4611) (43425a0) - binding: preserveModulesRoot (#4631) (51df2b7)
- ci: apply
cargo shear --fixcorrectly in autofix (#4677) (15934eb) - debug: add
StmtSideEffectto 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_filefromrolldown_plugin_asset(#4660) (1b3b8c3) - rolldown_plugin_utils: extract
file_to_urlfromrolldown_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
jsxoption intotransform(#4654) (4872097), closes #4447 - rust: merge
targetoption intotransform(#4665) (f9aa33a), closes #4651 - rust: preserveModulesRoot (#4630) (9f62c77)
- support to attach chunk debug information in output (#4633) (1079582)
Bug Fixes
chunk.nameis not sanitized when the chunk is a common chunk (#4712) (5949f2a), closes #4709preserveModulesco exists with multi entrypoints (#4626) (b46bdea), closes #4624preserveModulesdon't respect relative path (#4629) (9727493)- browser: disable oxc runtime plugin (#4708) (0ec9e7d), closes #4707
- ci: add missing
justin 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
moduleto 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.debugto 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
platformasbrowser" (#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)
Please refer to https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md.
New Contributors
- @GeoffreyParrier made their first contribution in #4612
- @re-taro made their first contribution in #4664
Full Changelog: v1.0.0-beta.9...v1.0.0-beta.10