Detalhes do pacote

rolldown

rolldown174.7kMIT1.0.0-beta.9

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

webpack, parcel, esbuild, rollup

readme (leia-me)

Rolldown logo

MIT licensed NPM version NPM Unpacked Size (with version) Build Status Code Coverage CodSpeed Badge Discord chat
NPM Unpacked Size darwin-arm64 NPM Unpacked Size darwin-x64 NPM Unpacked Size linux-x64-gnu NPM Unpacked Size win32-x64 NPM Unpacked Size wasm32-wasi
rolldown-starter-stackblitz

🚧 Work in Progress

Rolldown is currently in active development and not usable for production yet.

Rolldown

Rolldown is a JavaScript/TypeScript bundler written in Rust intended to serve as the future bundler used in Vite. It provides Rollup-compatible APIs and plugin interface, but will be more similar to esbuild in scope.

For more information, please check out the documentation at rolldown.rs.

VoidZero Inc.

Rolldown is a project of VoidZero, see our announcement Announcing VoidZero - Next Generation Toolchain for JavaScript.

If you have requirements for JavaScript tools at scale, please get in touch!

Contributing

We would love to have more contributors involved!

To get started, please read our Contributing Guide.

Credits

The Rolldown project is heavily inspired by:

And supported by:

  • napi-rs for Node.js add-ons in Rust via Node-API.
  • oxc for the underlying parser, resolver, and sourcemap support.

Licenses

This project is licensed under the MIT License.

This project also partially contains code derived or copied from the following projects:

Licenses of these projects are listed in THIRD-PARTY-LICENSE

changelog (log de mudanças)

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