包详细信息

rolldown

rolldown51.2kMIT1.0.0-beta.8

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

webpack, parcel, esbuild, rollup

自述文件

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

更新日志

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

1.0.0-beta.1 (2024-12-25)

Bug Fixes

Features

Performance Improvements

  • remove extra allocation on MagicString#to_string (#3211) (98978bc)

0.15.1 (2024-12-18)

Bug Fixes

Features

Performance Improvements

0.15.0 (2024-12-02)

Bug Fixes

Features

Performance Improvements

0.14.0 (2024-11-05)

Bug Fixes

Features

Performance Improvements

  • plugin_replace: set more reasonable number for regex backtrack_limit (#2202) (3874566)
  • plugin/replace: expand_typeof_replacements avoid temporary vecs (#2321) (84cb2a2)
  • plugin/replace: expand_typeof_replacements use regex crate (#2320) (22b43cd)
  • replace plugin (#2356) (d3e9b9c)
  • rolldown_sourcemap: remove many unnecessary memory allocations (#2596) (12b112f)
  • rolldown: use SemanticBuilder::with_stats when running semantic analysis on same AST twice (#2230) (7220e80), closes #2227
  • union find path compression (#2399) (ea56d8d)

0.13.2 (2024-09-06)

Features

  • node/advance-chunks: support global fallback for minSize, minShareCount (#2178) (78c7750)
  • node/advance-chunks: support passing minSize, minShareCount (#2177) (3c95d30)
  • rust/advance-chunks: support min_share_count option (#2176) (689cbc2)
  • rust/advance-chunks: support min_size option (#2175) (1e9c2d9)

0.13.1 (2024-09-05)

Bug Fixes

Features

  • node/rolldown: support OutputOptions#advancedChunks (#2167) (851475d)
  • rust/advance-chunks: A module could be caught by multiple match groups (#2155) (071efd8)
  • rust/advance-chunks: rework with new API design (#2146) (6339062)
  • rust/advance-chunks: should include matched module's dependencies too (#2161) (a557b51)
  • rust/advance-chunks: support test using regex (#2152) (b7b2ac5)

Performance Improvements

0.13.0 (2024-09-03)

Bug Fixes

Features

Performance Improvements

0.12.2 (2024-07-23)

Bug Fixes

Features

Performance Improvements

  • sourcemap: lookup original token in parallel (#1596) (e038205)

0.12.0 (2024-07-14)

Bug Fixes

Features

Performance Improvements

0.11.1 (2024-07-09)

Bug Fixes

  • treeshake.moduleSideEffects treeshake typing (#1559) (5ce9f67)
  • add dataurl in json config syntax. (#1536) (ddee952)
  • eliminate unused external module import stmt (#1558) (cdd83fd)
  • optional TransformResult#code (#1544) (15ce3ae)
  • sourcemap: avoid remapping if renderChunk hook not return map (#1545) (3e13785)

Features

0.11.0 (2024-07-05)

Bug Fixes

  • json: align the behavior of require json modules with nodejs (#1483) (8bf75ba)

Features

Performance Improvements

  • rolldown: avoid calling f64.to_string() (#1481) (f90969a)
  • rolldown: build oxc semantic data only once (#1506) (fa347b3)
  • rolldown: replace HASH_PLACEHOLDER_RE with simple string parsing (#1496) (aa347f5)
  • rolldown: use sort_unstable variants (#1469) (151d8c7)
  • rust/renamer: new deconflict strategy (#1461) (fa866eb)
  • rust: don't use regex on legitimize_identifier_name (#1477) (18bc668)
  • rust: reduce operations legitimize_identifier_name (#1478) (3d816d5)

0.10.5 (2024-06-27)

Bug Fixes

  • forbid_const_assign_when_lowering_using test (#1413) (0d15f0e)
  • cjs: handle export * from 'external' correctly (#1363) (9dbb803)
  • cjs: should not panic if wrapped esm module export * from 'external' (#1450) (c62a512)
  • core: don't panic on require calls that are invalid to bundler (#1445) (5fb31d0)
  • deps: update dependency @codemirror/view to v6.27.0 (#1347) (c6e1937)
  • deps: update dependency @rollup/plugin-commonjs to v26 (#1353) (7dbbfbc)
  • docs: update requirement of node version in contribution guide (#1345) (0d979b6)
  • export some typing (#1405) (c42f7b3)
  • option hook can be async and can return overwritten input options (#1422) (38a2c3e)
  • outputOptions hook argument should be OutputOptions (#1430) (472848b)
  • resolver: ensure we always pass an absolute path to oxc_resolver (#1442) (3ffe43f)
  • rolldown typing (#1387) (440e68e)
  • rolldown_fs: canonicalize polyfill on wasi platform (#1436) (2530866)

Features

0.10.4 (2024-06-04)

Bug Fixes

  • add return source logic when file not downloaded and add loader … (#1287) (103b8e5)
  • cjs: distinguish if symbols are referenced by chunk or modules (#1316) (75c69b3)
  • cjs: should render runtime module before generated imports (#1335) (94b1371)
  • deps: update dependency debug to v4.3.5 (#1296) (95460de)

Features

0.10.3 (2024-05-29)

Bug Fixes

  • cjs: only wrap entry cjs modules conditionally (#1164) (97d50b5)
  • cjs: should keep correct esm semantic in importing external modules (#1172) (4c6a63a)
  • cli: Improvements to more brandaly CLI (#754) (c07c3ed)
  • deps: update dependency @types/lodash to v4.17.3 (#1145) (52e733d)
  • deps: update dependency @types/lodash to v4.17.4 (#1147) (73e6d81)
  • deps: update dependency esbuild to ^0.21.0 (#1049) (5578516)
  • deps: update dependency esbuild to v0.21.1 (#1053) (562a7e2)
  • deps: update dependency esbuild to v0.21.3 (#1139) (68f44ff)
  • deps: update dependency execa to v9 (#1069) (6680a14)
  • deps: update dependency execa to v9.0.2 (#1078) (db1be3d)
  • deps: update dependency execa to v9.1.0 (#1110) (c2b6818)
  • deps: update dependency vue to v3.4.27 (#1048) (cf87c5d)
  • deps: update dependency zod to v3.23.8 (#1068) (7fef82c)
  • deps: update dependency zx to v8.1.0 (#1120) (7558600)
  • deps: update dependency zx to v8.1.2 (#1255) (4ab44ed)
  • deps: update minor dependencies (#1257) (00564af)
  • deps: update patch dependencies (#1060) (8a24ba9)
  • deps: update patch dependencies (#1073) (ec7ae9a)
  • deps: update patch dependencies (#1104) (cdd981e)
  • deps: update patch dependencies (#1215) (6022624)
  • deps: update patch dependencies (#1246) (f4bd84f)
  • doc: correct link and fileName in documentation (#1241) (afd37ef)
  • ensure chunk order (#1135) (975e884)
  • esbuild case test_common_js_variable_in_esm_type_module (#1183) (f11a717)
  • generateBundle and writeBundle compat to rollup (#966) (4a45b2d)
  • node/cli: exit process after bundling (#1097) (9a91687), closes #985
  • node/rolldown: CIRCULAR_DEPENDENCY warnings. (#1232) (56320ab)
  • node: should call hooks with await (#950) (1c5c7d5)
  • normalize windows path for sourcemap sources (#941) (bf9bbe1)
  • resolve: care about browser field while targeting browser platform (#1075) (936a6ab)
  • resolve: treat builtin modules as external by default while targeting node platform (#1190) (8d088d8)
  • rewrite dynamic import to correct entry chunk (#1195) (d242f3e)
  • rolldown/hash: calculate hash by scanning actually used dependencies and also prevent hash collision from different chunks that have the same content (#1141) (130013b)
  • rust/resolve: should point to the correct resolved external module with alias (#1253) (4667d32)
  • rust: calculate order of import chunks by global module execution order (#1206) (c9acb39)
  • rust: remove not existed member method (3134b77)
  • should generate correct chunk import path to importee in importer chunk (#1180) (8190a5c)
  • test_package_json_browser_no_ext (#1093) (82e77a1)
  • test_package_json_browser_over_main_node (#1107) (e863b43)
  • test_package_json_type_should_be_types (#1184) (63384bd)
  • tree_shaking: determine indirect side effects (#1213) (1003174)
  • tree-shaking: module should consider having side effect if it's dependencies have side effect (#1205) (b235a38)
  • typo (#1175) (6b0bbe7)
  • using path as sourcemap path (#946) (bc0934b)

Features

Performance Improvements

  • rolldown: avoid spurious allocations when prettifying paths (#945) (4f8d101)

0.10.2 (2024-04-17)

Bug Fixes

  • buildEnd hook handle error (#902) (bc8e9ab)
  • ci: cargo bench should install critcmp (#899) (0169bfe)
  • normalize original sourcemap sources (#765) (679a9ac)
  • passing BindingResolveOptions#alias from js to rust with maintaining order (#798) (2f3d865)
  • remapping sourcemap from transform hook (#755) (43242f4)
  • rust/resolver: use selected resolver instead of the default one (#780) (226df5b)
  • sourcemap sources path relative to output file dirname (#758) (7f5047f)

Features

  • add InputOptions#platform (#751) (97ea4b6)
  • Allow pass tsconfig to oxc-resolver via InputOptions#resolve#tsconfigFilename (#767) (c304a0d)
  • emit warning for circular dependency (#839) (6d64a64)
  • improve side effect detector (#807) (b948cf6)
  • node/plugin: support renderStart hook (#833) (c1194e6)
  • rolldown: introduce rolldown_rayon (#846) (4f9ae49)
  • rolldown: support compile to wasi (#467) (da45d40)
  • rust: only derive deserialize on BundlerOptions in testing (#880) (06df20d)
  • rust: collect circular dependencies while sorting modules (#830) (c092e0b)
  • rust: improve alignment of resolve behaviors with esbuild (#759) (e9d7717)
  • support entryFileNames and chunkFileNames (#777) (50da487)
  • support InputOptions#shimMissingExports (#772) (2c84963)
  • support renderError hook (#900) (b9c9181)
  • support disable warnings using InputOptions#logLevel (#859) (f90bbb0)
  • support render chunk hook normalzied output options (#795) (709aca7)
  • support return sourcemap in render chunk hook (#776) (0d4c2d5)
  • support running Js plugin in parallel via Worker (#825) (cff55de)
  • tree_shaking: shake unused import variables (#771) (6714dd0)

Performance Improvements

  • avoid unnecessary clone in AddonFunction (#822) (f814c3e)
  • rolldown: use starts_with instead of regex in resolve (#878) (93dc6ce)
  • sourcemap: search lines count at parallel (#806) (267fc2a)

0.10.1 (2024-04-03)

Bug Fixes

  • rolldown node api should create graph (#302) (c7749ba)
  • A Symbol should only be declared in one chunk (#338) (340cd27)
  • add identifier for export default function without identifier (#81) (e84cde7)
  • add stmt info declare symbol for resolution found symbol (#91) (50e191a)
  • align with rollup, change output.format: 'esm' to output.format: 'es' (#625) (70b6cfd)
  • allow cjs to be both entry and dependency (#336) (d53155b)
  • async_scope_block_on (#210) (51f1be1)
  • bench/ci: use correctly github repo token (049566e)
  • binding: only panic in the main thread (#507) (d844125)
  • build script pkgName parsing error (#546) (0d6582f)
  • bump to oxc@0.7 (1af4b86)
  • ci release (#428) (483e533)
  • ci: don't forget to checkout (fc231b8)
  • ci: fix release-canary.yml (6fc0430)
  • ci: fix testing in release.yml (#651) (6e68b1a)
  • ci: need to checkout for using local actions (bb87f9a)
  • clean up render exports from external module (#394) (e51a69a)
  • cli: Make the CLI output color correctly (#645) (c19c8dc)
  • cli: normalize provided config path to satisfy esm-loader in windows (#658) (be0540d)
  • clippy (#4) (f028cff)
  • conflict between imported and local binding (#356) (7387e35), closes #355
  • correct id in transform hook (#473) (7af0262)
  • correct the TS type of the banner ts-binding (#689) (a072a00)
  • deconflict export named declaration (#386) (21aaa36)
  • deconflict for duplicate canonical names (#365) (eebea46), closes #364
  • defonflict export default function (#385) (518aa5f)
  • determine call expression result is used to render require call (#144) (85224ea)
  • don't rename symbols that show many times. Fixes #419 (f985755)
  • duplicate dynamic entries (#380) (6067e74)
  • dynamic import as entry (#366) (8d33829)
  • dynamic import chunk is_entry should be false (#361) (6f2b75a)
  • ensure valid output for import the same cjs twice (#323) (87b5000)
  • expect msg (#456) (11e5598)
  • export rolldown compat types (#337) (3efa4fd)
  • fix typo in README.md (#443) (8ad8174)
  • generate local symbol for esm import cjs instead of reference cjs namespace symbol (#141) (5c53415)
  • hoist statements. Fixes #418 (276bbae)
  • hoisted import declaration (#80) (569409d)
  • hoisted top level scope declaration for wrapped esm (#387) (ec20c03)
  • invalid output for conflict global and local name (#359) (d464eee)
  • keep the context of function call while deconflict symbols (7401a05)
  • make sure namespace name is valid identifier (#107) (d3c81aa)
  • module execute order (#148) (7ef1c20)
  • more meaningful chunk filename (#381) (47b4b6d), closes #49
  • node-bench: apply @rollup/plugin-commonjs on rollup (#523) (181422a)
  • node/types: resolve.alias should be optional (ee10a4f)
  • only import needed runtime symbols (#324) (51db31f), closes /github.com/rolldown-rs/rolldown/pull/319#discussion_r1398069930
  • only pull out __export() when it's needed (670dbb6)
  • packages/core: allow empty OutputOptions.format (#224) (0a79036)
  • packages/core: make outputOptions optional (#223) (b2439b1)
  • playground panic (#263) (f97bea0)
  • reexport star from local named export (#290) (77c77ec)
  • release: make prepare-publish-node folder (14d2cd5)
  • release: remove build steps for android platform (161ef5f)
  • rename in SimpleAssignmentTarget (1d24efc)
  • rewrite AssignmentTargetProperty (5605fc2)
  • rewrite object shorthand property reference (#384) (9f3332b)
  • rewrite unresolved symbol reference callee to indirect call (#94) (6284028)
  • rolldown example root is empty in debug mode (#582) (88f61e8)
  • runtime module should always be the first to be executed (#116) (883168f)
  • rust: fix bench for react by removing a lot of unsafe (#522) (71da395)
  • rust: remove RUNTIME_PATH (#274) (c93a2fb)
  • rust: should not hard code output.dir (37ded97)
  • shoud accept args for just bump packages (778ae11)
  • should correctly render export default xxx (#377) (7fa642f)
  • should rewrite export default import(...) correctly (#220) (cd8ad5e)
  • stable generated exports (#313) (526a04b)
  • support browser filed false value (#395) (c3a82a4)
  • top level await fix compile error (#226) (ac60fdf)
  • treeshaking: spreading an expression is consider having side effect (#509) (d094d56)
  • typo in README.md (#458) (24a4018)
  • use the same Resolver everywhere (#253) (cbcee58)
  • using vec to keep input options order (#217) (4e4f20a)
  • warpped require module (#79) (ee9a682)
  • wrong rolldown test config priority (#642) (9490e31)

Features

Performance Improvements

Reverts

  • Revert "refactor: implement ConcatSource (#611)" (#612) (dc32a76), closes #611 #612
  • Revert "perf: reduce Module size (#6)" (#7) (711ddb0), closes #6 #7

0.10.0 (2024-03-26)

Bug Fixes

  • rolldown node api should create graph (#302) (c7749ba)
  • A Symbol should only be declared in one chunk (#338) (340cd27)
  • add identifier for export default function without identifier (#81) (e84cde7)
  • add stmt info declare symbol for resolution found symbol (#91) (50e191a)
  • align with rollup, change output.format: 'esm' to output.format: 'es' (#625) (70b6cfd)
  • allow cjs to be both entry and dependency (#336) (d53155b)
  • async_scope_block_on (#210) (51f1be1)
  • binding: only panic in the main thread (#507) (d844125)
  • build script pkgName parsing error (#546) (0d6582f)
  • bump to oxc@0.7 (1af4b86)
  • ci release (#428) (483e533)
  • ci: don't forget to checkout (fc231b8)
  • ci: fix release-canary.yml (6fc0430)
  • ci: fix testing in release.yml (#651) (6e68b1a)
  • ci: need to checkout for using local actions (bb87f9a)
  • clean up render exports from external module (#394) (e51a69a)
  • cli: Make the CLI output color correctly (#645) (c19c8dc)
  • clippy (#4) (f028cff)
  • conflict between imported and local binding (#356) (7387e35), closes #355
  • correct id in transform hook (#473) (7af0262)
  • deconflict export named declaration (#386) (21aaa36)
  • deconflict for duplicate canonical names (#365) (eebea46), closes #364
  • defonflict export default function (#385) (518aa5f)
  • determine call expression result is used to render require call (#144) (85224ea)
  • don't rename symbols that show many times. Fixes #419 (f985755)
  • duplicate dynamic entries (#380) (6067e74)
  • dynamic import as entry (#366) (8d33829)
  • dynamic import chunk is_entry should be false (#361) (6f2b75a)
  • ensure valid output for import the same cjs twice (#323) (87b5000)
  • expect msg (#456) (11e5598)
  • export rolldown compat types (#337) (3efa4fd)
  • fix typo in README.md (#443) (8ad8174)
  • generate local symbol for esm import cjs instead of reference cjs namespace symbol (#141) (5c53415)
  • hoist statements. Fixes #418 (276bbae)
  • hoisted import declaration (#80) (569409d)
  • hoisted top level scope declaration for wrapped esm (#387) (ec20c03)
  • invalid output for conflict global and local name (#359) (d464eee)
  • keep the context of function call while deconflict symbols (7401a05)
  • make sure namespace name is valid identifier (#107) (d3c81aa)
  • module execute order (#148) (7ef1c20)
  • more meaningful chunk filename (#381) (47b4b6d), closes #49
  • node-bench: apply @rollup/plugin-commonjs on rollup (#523) (181422a)
  • node/types: resolve.alias should be optional (ee10a4f)
  • only import needed runtime symbols (#324) (51db31f), closes /github.com/rolldown-rs/rolldown/pull/319#discussion_r1398069930
  • only pull out __export() when it's needed (670dbb6)
  • packages/core: allow empty OutputOptions.format (#224) (0a79036)
  • packages/core: make outputOptions optional (#223) (b2439b1)
  • playground panic (#263) (f97bea0)
  • reexport star from local named export (#290) (77c77ec)
  • release: make prepare-publish-node folder (14d2cd5)
  • release: remove build steps for android platform (161ef5f)
  • rename in SimpleAssignmentTarget (1d24efc)
  • rewrite AssignmentTargetProperty (5605fc2)
  • rewrite object shorthand property reference (#384) (9f3332b)
  • rewrite unresolved symbol reference callee to indirect call (#94) (6284028)
  • rolldown example root is empty in debug mode (#582) (88f61e8)
  • runtime module should always be the first to be executed (#116) (883168f)
  • rust: fix bench for react by removing a lot of unsafe (#522) (71da395)
  • rust: remove RUNTIME_PATH (#274) (c93a2fb)
  • rust: should not hard code output.dir (37ded97)
  • shoud accept args for just bump packages (778ae11)
  • should correctly render export default xxx (#377) (7fa642f)
  • should rewrite export default import(...) correctly (#220) (cd8ad5e)
  • stable generated exports (#313) (526a04b)
  • support browser filed false value (#395) (c3a82a4)
  • top level await fix compile error (#226) (ac60fdf)
  • treeshaking: spreading an expression is consider having side effect (#509) (d094d56)
  • typo in README.md (#458) (24a4018)
  • use the same Resolver everywhere (#253) (cbcee58)
  • using vec to keep input options order (#217) (4e4f20a)
  • warpped require module (#79) (ee9a682)
  • wrong rolldown test config priority (#642) (9490e31)

Features

Performance Improvements

Reverts

  • Revert "refactor: implement ConcatSource (#611)" (#612) (dc32a76), closes #611 #612
  • Revert "perf: reduce Module size (#6)" (#7) (711ddb0), closes #6 #7