Skip to content

Releases: rolldown/rolldown

v1.2.4

Choose a tag to compare

@github-actions github-actions released this 12 Aug 10:33
Immutable release. Only release title and notes can be modified.
483c648

[1.2.4] - 2026-08-12

🚀 Features

🐛 Bug Fixes

  • binding: illegal instruction crash on Android arm64 (#10638) by @shulaoda
  • code-splitting: stop negated sideEffects globs retaining modules (#10660) by @JoviDeCroock
  • devtools: resolve log paths against the build cwd (#10622) by @hyfdev

📚 Documentation

🧪 Testing

  • browser: smoke test the packed @rolldown/browser in a real browser page (#10634) by @hyfdev
  • node-wasi: run the full node test suite against the WASI binding (#10616) by @hyfdev
  • webcontainer: smoke test the packed WASI artifacts inside a WebContainer (#10626) by @hyfdev

⚙️ Miscellaneous Tasks

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

v1.2.3

Choose a tag to compare

@github-actions github-actions released this 05 Aug 10:52
Immutable release. Only release title and notes can be modified.
52dbd19

[1.2.3] - 2026-08-05

🐛 Bug Fixes

  • dev: don't let a failed watch registration abort the batch (#10548) by @shulaoda

🚜 Refactor

📚 Documentation

⚡ Performance

🧪 Testing

  • resolve-file-url: allow a reference id to start with a digit (#10623) by @jjb
  • code-splitting: pin the already-loaded namespace-extraction boundaries (#10593) by @IWANABETHATGUY

⚙️ Miscellaneous Tasks

  • deps: upgrade oxc to 0.143.0 (#10603) by @camc314
  • deps: update rollup submodule for tests to v4.62.4 (#10607) by @rolldown-guard[bot]
  • deps: update test262 submodule for tests (#10608) by @rolldown-guard[bot]

❤️ New Contributors


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

v1.2.2

Choose a tag to compare

@github-actions github-actions released this 03 Aug 09:50
Immutable release. Only release title and notes can be modified.
872b98a

[1.2.2] - 2026-08-03

🚀 Features

🐛 Bug Fixes

  • dev: force cleanDir off in dev mode (#10579) by @shulaoda
  • dev: keep ?rolldown-lazy proxy ids out of user resolveId hooks (#10580) by @btea
  • initialize re-exported wrapped ESM modules at the entry chunk (#10567) by @hyfdev
  • link: resolve circular star reexports as null (#10445) by @Nic-Polumeyv
  • transform: transformer gate skips newer syntax that oxc can lower (#10564) by @sekyungk
  • code-splitting: materialize consumer-local barrel routing when the order-wrap plan is empty (#10544) by @hyfdev
  • plugin: measure plugin hooks in JavaScript, report them from Rust (#10508) by @IWANABETHATGUY
  • plugin: include external dynamic imports in chunk metadata (#10557) by @hyfdev
  • plugin: report plugin timings after closeBundle has run (#10521) by @IWANABETHATGUY
  • browser: avoid using node builtin modules (#10542) by @sapphi-red

🚜 Refactor

📚 Documentation

⚡ Performance

🧪 Testing

⚙️ Miscellaneous Tasks

❤️ New Contributors

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

v1.2.1

Choose a tag to compare

@github-actions github-actions released this 29 Jul 13:25
Immutable release. Only release title and notes can be modified.
93c535d

[1.2.1] - 2026-07-29

🚀 Features

🐛 Bug Fixes

  • external: keep __toESM when the importing module is tree-shaken (#10516) by @IWANABETHATGUY
  • dev: resolve re-exports from externals through a real import (#10489) by @tbvjaos510
  • code-splitting: route CJS barrel initialization per consumer (#10488) by @hyfdev
  • error: align filename-pattern diagnostics with Rollup's wording (#10501) by @IWANABETHATGUY
  • plugin: validate emitted prebuilt-chunk file names (#10399) by @IWANABETHATGUY
  • code-splitting: point a two-argument dynamic import at the chunk that holds the module (#10479) by @hyfdev
  • common: align is_path_fragment with Rollup's isPathFragment (#10398) by @IWANABETHATGUY
  • code-splitting: never name an internal chunk export then (#10480) by @hyfdev
  • code-splitting: avoid creating call-site-triggered entry facades (#10485) by @hyfdev
  • code-splitting: collect top-level eager order reasons in every strict build (#10463) by @hyfdev
  • code-splitting: let a cross-chunk dynamic importer carry the order trigger (#10456) by @hyfdev
  • code-splitting: avoid the dynamic-entry facade when the same-chunk collapse carries the trigger (#10433) by @hyfdev
  • binding: forward resolveId options.kind to callable builtin plugins (#10440) by @martijnwalraven
  • dev: keep the export name of export * as ns from (#10476) by @tbvjaos510
  • code-splitting: only split an entry facade when something else can load its chunk (#10441) by @hyfdev
  • code-splitting: fold the runtime chunk back after order lowering (#10414) by @hyfdev
  • runtime: don't leave default undefined for cjs that fakes __esModule (#10453) by @IWANABETHATGUY
  • import-glob: escape generated string literals (#10438) by @shantanuraj
  • preserve-modules: don't assume every chunk mirrors a module (#10442) by @hyfdev
  • filter: treat missing hook inputs as non-matches, not panics (#10443) by @IWANABETHATGUY
  • code-splitting: keep CommonJS modules wrapped under strict execution order (#10405) by @hyfdev
  • code-splitting: align dynamicImports metadata with the rewritten import() specifier (#10430) by @hyfdev
  • dev: skip user plugin hooks for ?rolldown-lazy proxy modules (#10426) by @unknownjedi
  • treeshake: preserve side-effect-free spread arguments in manual-pure chains (#10432) by @IWANABETHATGUY
  • treeshake: preserve eagerly evaluated child effects of manual pure chains (#10427) by @Nic-Polumeyv
  • code-splitting: initialize pure definers behind star re-export barrels under strict execution order (#10409) by @hyfdev
  • resolveId: reject string id filters (must be a RegExp) (#10412) by @IWANABETHATGUY
  • code-splitting: collect eager order reasons for on-demand wrapping (#10387) by @hyfdev
  • rolldown: apply output.paths to CJS export-star of external modules (#10406) by @IWANABETHATGUY
  • dev: sourcemaps of lazily compiled chunks (#10386) by @tbvjaos510
  • plugin: validate emitted file names at emitFile time (#10377) by @Nic-Polumeyv
  • guarantee tokio runtime release when close rejects (#10381) by @shulaoda
  • code-splitting: make strict transitive init registration deterministic and constant-time (#10320) by @hyfdev
  • pair tokio runtime acquire and release on wasm to prevent premature shutdown (#10363) by @shulaoda
  • don't body-demand modules from simulated facade chunk includes (#10351) by @IWANABETHATGUY
  • tracing: invalid RD_LOG filter and RD_LOG_OUTPUT=json no longer panic (#10343) by @Brooooooklyn
  • code-splitting: treat class definition-time global reads as order-sensitive (#10322) by @hyfdev
  • code-splitting: deconflict force-included runtime helper statements (#10336) by @hyfdev
  • binding: forward all missing parallel JS plugin hooks (#10345) by @Brooooooklyn
  • code-splitting: re-derive chunk exec order after the runtime sweep (#10334) by @hyfdev
  • types: add undefined to ExistingRawSourceMap optional properties (#10355) by @ocavue
  • magic-string: validate relocate ranges before rewiring (#10327) by @IWANABETHATGUY
  • add EMPTY_IMPORT_META warning for non-node CJS output (#10222) by @sapphi-red
  • call resolveFileUrl in a deterministic order (#10330) by @sapphi-red
  • magic-string: refuse repeated sendMagicString on a consumed instance (#10331) by @IWANABETHATGUY
  • magic-string: refuse to use a MagicString after sendMagicString consumed it (#10326) by @IWANABETHATGUY
  • magic-string: reject non-contiguous moves before rewiring the chunk list (#10311) by @IWANABETHATGUY
  • handle ./foo/bar glob pattern the same as foo/bar (#10313) by @sapphi-red
  • magic-string: throw instead of panicking when append/prepend splits an edited chunk (#10301) by @IWANABETHATGUY
  • output: skip separator for empty hoisted functions (#10310) by @hyfdev
  • magic-string: don't report a change when edits cancel out (#10299) by @IWANABETHATGUY
  • sourcemap: map wrapped imported callees (#10288) by @hyfdev
  • magic-string: count positional inserts at index 0 on an empty source (#10306) by @IWANABETHATGUY
  • magic-string: return UTF-16 code units from length() (#10295) by @IWANABETHATGUY
  • output: skip separator for empty import prelude (#10289) by @hyfdev

🚜 Refactor

📚 Documentation

⚡ Performance

🧪 Testing

  • code-splitting: pin CJS barrel fallback triggers and flag-off equivalence (#10514) by @hyfdev
  • plugin: cover chunk fileName, absolute chunk name, and Windows drive names (#10400) by @IWANABETHATGUY
  • code-splitting: cover a single-chunk dynamic import of a wrapped module (#10505) by @hyfdev
  • file: remove the unused .dynamic_import fixture (#10481) by @hyfdev
  • treeshake: reduce manual-pure fixture to a minimal smoke test, move matrix to unit tests (#10436) by @IWANABETHATGUY
  • dev: run vite playgrounds under bundled dev (test-serve-bundled) (#10434) by @h-a-n-a
  • stop snapshots from silently hiding user code inside the runtime region (#10431) by @hyfdev
  • wasi: add tokio runtime lifecycle regression test (#10379) by @shulaoda
  • dev: expect preserved hot.data in hmr-whole-chain-dispose (#10380) by @h-a-n-a
  • code-splitting: pin flag-off wrapped-esm init emission (#10324) by @hyfdev
  • sourcemap: fix Windows-only failures in composition fixtures (#10368) by @shulaoda
  • generated-code: mark assert external in symbols_ns2 for deterministic output (#10339) by @hyfdev
  • code-splitting: cover entries-aware strict init cycle (#10307) by @hyfdev
  • make just setup-vite the only entry point that touches vite/ (#10332) by @shulaoda
  • vite-tests: reuse the shared root vite checkout (#10325) by @shulaoda
  • test-dev-server: drop the vite submodule, track rolldown-canary (#10319) by @shulaoda
  • vite-tests: track the latest rolldown-canary rebased onto vite main (#10318) by @shulaoda
  • unify Vite in vite-test and test-dev-server (#10293) by @h-a-n-a

⚙️ Miscellaneous Tasks

  • scope the binding artifact download to bindings-* (#10525) by @shulaoda
  • deps: update napi (#10506) by @renovate[bot]
  • deps: update rollup submodule for tests to v4.62.3 (#104...
Read more

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 11:08
Immutable release. Only release title and notes can be modified.
03e1e34

[1.2.0] - 2026-07-15

🚀 Features

🐛 Bug Fixes

  • sourcemap: preserve unmapped boundaries during composition (#10254) by @hyfdev
  • [format] in *FileNames option for ESM format should be es instead of esm (#10214) by @sapphi-red
  • sourcemap: preserve coarse mappings during composition (#10249) by @hyfdev
  • rolldown_plugin_vite_import_glob: support tsconfig paths with import.meta.glob (#10167) by @sapphi-red
  • dev: clear tsconfig caches for bare full builds (#10276) by @shulaoda
  • dev: force a full rebuild when a tsconfig changes (#10261) by @shulaoda
  • treat rooted drive-less module ids as absolute in preserveModules naming (#10235) by @IWANABETHATGUY
  • watch: rebuild when tsconfig files change (#10258) by @shulaoda
  • watch: drop tsconfig-merged transform options on each rebuild (#10257) by @shulaoda
  • incorrect EMPTY_IMPORT_META warning for import.meta.ROLLUP_FILE_URL_* for CJS output (#10221) by @sapphi-red
  • deconflict: rename CJS locals shadowing wrapped-ESM namespace objects (#9970) by @IWANABETHATGUY
  • rolldown: drop the unused runtime module after entry-level external flattening (#10237) by @IWANABETHATGUY
  • rolldown: re-propagate has_dynamic_exports to transitive star importers (#10239) by @IWANABETHATGUY
  • tree-shaking: tree-shake destructured dynamic import namespace bindings (#10213) by @logaretm
  • s390x: use json-escape-simd 3.1.1 for big-endian JSON escaping fix (#10211) by @satyamg1620

🚜 Refactor

  • dev: move full-reload to client side (#10207) by @h-a-n-a
  • readability follow-ups to the ReplaceWith migration (#10286) by @IWANABETHATGUY
  • replace take_in-then-write-back with ReplaceWith and by-value moves (#10285) by @Boshen
  • share the main resolver's cache with the transformer's tsconfig lookups (#10205) by @shulaoda
  • rolldown: extract the ns star-external __reExport emission rule into LinkingMetadata (#10238) by @IWANABETHATGUY
  • rolldown: unify link/generate diagnostics into a Diagnostics accumulator (#10234) by @IWANABETHATGUY
  • sourcemap_filenames: drop dead sourcemap-filename plumbing (#10189) by @IWANABETHATGUY
  • extract external import symbol merging into a method (#10224) by @IWANABETHATGUY
  • rolldown: skip CJS namespace merging under strict execution order (#10203) by @hyfdev
  • resolve the manual tsconfig per file instead of once at startup (#10200) by @shulaoda
  • rolldown: route interop ESM init emission through a shared init-target view (#10202) by @hyfdev
  • rolldown: collapse vestigial wrap-kind state and share chunk sort helper (#10201) by @hyfdev

📚 Documentation

  • show plugin kinds in JSDoc and each hook's description (#10218) by @sapphi-red
  • add an explanation about removing imports from external modules without any messages (#10215) by @sapphi-red

⚡ Performance

  • sourcemap: owned merge in SourceJoiner::join (4005->5 allocs/chunk) (#10250) by @Boshen
  • avoid redundant sourcemap string copies in collapse and minify paths (#10093) by @Boshen

🧪 Testing

  • code-splitting: establish strict-order review baselines (#10287) by @hyfdev
  • dev: add hot API test cases (#10181) by @h-a-n-a
  • code-splitting: normalize strict execution order variants (#10277) by @hyfdev
  • code-splitting: harden strict execution order coverage (#10252) by @hyfdev
  • code-splitting: add strict execution order regressions (#10253) by @hyfdev

⚙️ Miscellaneous Tasks

❤️ New Contributors

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

v1.1.5

Choose a tag to compare

@github-actions github-actions released this 08 Jul 11:32
Immutable release. Only release title and notes can be modified.
f09947a

[1.1.5] - 2026-07-08

🚀 Features

🐛 Bug Fixes

  • improve invalid annotation warnings (#10185) by @hyf0
  • keep deduplicated asset filenames stable once they can be observed (#10191) by @shulaoda
  • sourcemap_filenames: use public option name in pattern errors (#10188) by @IWANABETHATGUY
  • sourcemap_filenames: hash prepared sourcemap content (#10178) by @hyf0
  • tree-shake unused circular declarators exported via export list (#10166) by @IWANABETHATGUY
  • dev: don't panic when an HMR rebuild hits an unresolved import (#10162) by @shulaoda
  • propagate errors from output.globals function (#9880) by @shulaoda
  • dev: revert cache mutations when a partial scan fails (#10110) by @shulaoda
  • dev: update importer relationships of cached modules in incremental build (#10107) by @shulaoda
  • hmr: fall back to full reload when a changed module is not registered as executed (#10132) by @shulaoda
  • chunk-optimizer: follow entry facade edges in runtime placement cycle check (#10101) by @hyf0
  • dev: ignore watcher events after close (#10113) by @hyf0
  • emit async wrapper for TLA modules under onDemandWrapping (#10086) by @IWANABETHATGUY
  • gate sideEffects:false modules' side effects on body demand (#10080) by @IWANABETHATGUY
  • rolldown_plugin_vite_resolve: return empty object for browser: false mapped modules (#10082) by @sapphi-red
  • reset the word-boundary state on newline in Hires::Boundary sourcemaps (#10025) by @shulaoda
  • trim an emptied chunk's outro/intro instead of skipping past it (#10029) by @shulaoda
  • test each edited chunk's own start against indent exclude ranges (#10026) by @shulaoda
  • preserve sourcemap mappings for indented lines when a CJS module shares the chunk (#10074) by @hyf0

🚜 Refactor

  • separate tree-shaking side effects from execution order sensitivity (#10168) by @hyf0
  • type construct_vite_preload_call to take an ObjectPattern (#10135) by @shulaoda
  • treeshake: single-source the own-export classification shared with the lazy-barrel loader (#10098) by @IWANABETHATGUY
  • dev: reuse Vite's bundledDev server (#10081) by @h-a-n-a
  • clippy: ban std HashMap/HashSet in favour of FxHashMap/FxHashSet (#10108) by @Boshen
  • treeshake: make body demand a second module bit instead of a stmt multimap (#10097) by @IWANABETHATGUY
  • seal used_symbol_refs by construction after its last writer (#10091) by @hyf0
  • treeshake: replace inclusion mutual recursion with a worklist engine (#10096) by @IWANABETHATGUY
  • treeshake: split include_statements.rs into focused modules (#10095) by @IWANABETHATGUY
  • drop redundant is_user_defined filter on partitioned entries (#10050) by @shulaoda
  • project the retained export interface out of used_symbol_refs (#10089) by @hyf0
  • track used external symbols separately from used_symbol_refs (#10088) by @hyf0
  • make module namespace inclusion an explicit linking metadata field (#10087) by @hyf0
  • rename statement evaluation metadata (#10078) by @hyf0

📚 Documentation

⚡ Performance

  • ast_scanner: stop order-sensitivity checks once a module is flagged (#10190) by @IWANABETHATGUY
  • return impl ExactSizeIterator from slice-backed accessors (#10133) by @Boshen
  • binding: box dev and watcher napi futures (#10103) by @Boshen

🧪 Testing

  • move string_wizard replace unit tests to the JS magic-string suite (#10176) by @IWANABETHATGUY
  • dev: assert incremental scan state matches a fresh full build after each HMR step (#10115) by @shulaoda
  • dev: restore runtime assertions of delete_file_not_used_anymore (#10112) by @shulaoda
  • dev: fix flaky dev server tests in CI (#10152) by @h-a-n-a
  • add regression test for #10099 (lazyBarrel drops default-import binding but keeps its property reads) (#10109) by @IWANABETHATGUY

⚙️ Miscellaneous Tasks

◀️ Revert

  • Revert "chore(deps): revert vite-plus to v0.2.1" (#10157) by @h-a-n-a
  • "fix(hmr): fall back to full reload when a changed module is not registered as executed (#10132)" (#10151) by @shulaoda

❤️ New Contributors

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

v1.1.4

Choose a tag to compare

@github-actions github-actions released this 01 Jul 14:02
Immutable release. Only release title and notes can be modified.
6cbd233

[1.1.4] - 2026-07-01

🚀 Features

🐛 Bug Fixes

  • dev: disable lazy barrel in dev mode (#10060) by @shulaoda
  • generate: keep full JSON interface under preserveModules namespa… (#10056) by @IWANABETHATGUY
  • check finalize_other_specifiers in its own Debug attribute (#10032) by @shulaoda
  • serialize the KeepAssign unused minify option as "keep_assign" (#10031) by @shulaoda
  • keep fragments after the newline fragment in MagicString::last_line (#10023) by @shulaoda
  • generate: undeclared JSON named exports under preserveModules (#10020) (#10027) by @IWANABETHATGUY
  • deconflict: rename CJS-wrapped locals that shadow chunk-root bindings (#9921) by @IWANABETHATGUY
  • rolldown: keep entry facade when a shared chunk holds another entry's module (#9997) by @hyf0
  • treeshake: also bail JSON default split when the object escapes (#9996) by @IWANABETHATGUY
  • don't classify await in a strict-mode function as top-level await (#9987) by @shulaoda
  • avoid spurious leading newline in addon hooks (banner/footer/intro/outro) (#9989) by @shulaoda
  • handle JSON default mutation bailouts (#9972) by @TheAlexLichter
  • plugin: make lazy hook metadata enumerable (#9991) by @TheAlexLichter
  • dev: make init errors in lazy-compiled modules catchable (#9981) by @h-a-n-a
  • treeshake: keep computed-key side effects on namespace member access (#9986) by @shulaoda
  • binding: validate replace plugin delimiters length instead of panicking (#9984) by @shulaoda
  • reconstruct nested rest patterns in into_expression (#9980) by @IWANABETHATGUY
  • reconstruct rest patterns as spread in into_expression (#9976) by @shulaoda
  • preserve export keyword on multi-declarator exports under keepNames (#9974) by @shulaoda
  • deterministically keep the shortest name for deduplicated assets (#9948) by @x1024
  • treeshake: apply @NO_SIDE_EFFECTS to cross-chunk namespace calls (#9960) by @IWANABETHATGUY

🚜 Refactor

📚 Documentation

  • rolldown: remove outdated comment for removing parenthesized expression (#10062) by @Dunqing
  • use GitHub-flavored alert for Etiquette note in contribution guide (#10012) by @IWANABETHATGUY
  • replace: explain the delimiters left and right boundaries (#9985) by @shulaoda
  • ast-mutation: remove stale Address Use section after pre-scan refactor (#9983) by @IWANABETHATGUY
  • remove fathom (#9968) by @mdong1909
  • contribution-guide: code-format main branch references (#9966) by @IWANABETHATGUY
  • contribution-guide: fix stale REPL note and tidy wording (#9957) by @hyf0
  • contribution-guide: clarify when to discuss before opening a PR (#9955) by @hyf0

⚡ Performance

🧪 Testing

⚙️ Miscellaneous Tasks

◀️ Revert

❤️ New Contributors

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

v1.1.3

Choose a tag to compare

@github-actions github-actions released this 24 Jun 10:49
Immutable release. Only release title and notes can be modified.
e77f7c7

[1.1.3] - 2026-06-24

🐛 Bug Fixes

🚜 Refactor

📚 Documentation

⚡ Performance

  • utils: avoid allocation in default_sanitize_file_name for clean names (#9928) by @Boshen
  • binding: box once-per-build futures before spawn_future (#9864) by @Boshen
  • utils: avoid wasted allocation in legitimize_identifier_name (#9926) by @Boshen
  • rolldown: fuse the canonical-name dedup and insert in the renamer (#9900) by @Boshen
  • rolldown: probe the name map once in ConflictResolver::resolve (#9899) by @Boshen
  • cut two heap allocations from wrapped ESM init finalize (#9901) by @Boshen
  • rolldown_plugin_vite_reporter: hoist invariant out_dir prefix out of reporter loop (#9873) by @shulaoda
  • drop throwaway Vec in wrapped esm init stmt (#9878) by @shulaoda
  • borrow owner_filename in build-import-analysis AddDeps (#9874) by @shulaoda

🧪 Testing

⚙️ Miscellaneous Tasks

  • deps: update napi to v3.9.4 (#9954) by @shulaoda
  • reduce noise from CODEOWNERS for trival changes (#9953) by @h-a-n-a
  • deps: update mimalloc-safe to 0.1.64 (#9950) by @shulaoda
  • deps: update rollup submodule for tests to v4.62.2 (#9931) by @rolldown-guard[bot]
  • deps: test mimalloc-safe upstream-mimalloc switch in CI (#9930) by @shulaoda
  • rolldown_plugin_vite_build_import_analysis: remove unused v2 code path (#9917) by @shulaoda
  • rolldown_plugin_vite_manifest: remove unused is_enable_v2 code path (#9916) by @shulaoda
  • rolldown_plugin_vite_asset_import_meta_url: remove unexposed native vite plugin (#9896) by @shulaoda
  • rolldown_plugin_vite_asset: remove unexposed native vite plugin (#9895) by @shulaoda
  • rolldown_plugin_vite_css_post: remove unexposed native vite plugin (#9894) by @shulaoda
  • rolldown_plugin_vite_css: remove unexposed native vite plugin (#9893) by @shulaoda
  • rolldown_plugin_vite_html_inline_proxy: remove unexposed native vite plugin (#9892) by @shulaoda
  • rolldown_plugin_vite_html: remove unexposed native vite plugin (#9891) by @shulaoda
  • deps: update github actions (#9909) by @renovate[bot]
  • deps: update rust crate oxc_sourcemap to v8.0.2 (#9910) by @renovate[bot]
  • deps: update npm packages (#9912) by @renovate[bot]
  • deps: update github actions to v7 (#9913) by @renovate[bot]
  • deps: update rolldown-plugin-dts to ^0.26.0 (#9897) by @renovate[bot]
  • remove rolldown_filter_analyzer crate (#9865) by @Boshen

❤️ New Contributors

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

v1.1.2

Choose a tag to compare

@github-actions github-actions released this 18 Jun 13:33
Immutable release. Only release title and notes can be modified.
e0d0b1b

[1.1.2] - 2026-06-18

📝 Notable tsconfig behavior changes

These ship via the oxc_resolver 11.21.3 bump (#9841) and affect resolve.tsconfigPaths (Vite 8 resolves through oxc-resolver):

  • Honor explicit non-TS extensions in include (oxc-project/oxc-resolver#1213). compilerOptions.paths now resolve for importers whose extension is explicitly listed in a tsconfig's include (e.g. src/**/*.vue, src/**/*.svelte). Previously oxc-resolver filtered importers by extension before evaluating the include globs, so a .vue/.svelte file listed in include never matched its project and its paths were skipped. This unblocks the default create-vite Vue + TS layout (a solution-style root plus a referenced tsconfig.app.json that declares paths and include: ["src/**/*.ts", "src/**/*.vue"]). Matches vue-tsc and svelte-check, which register these extensions via TypeScript's extraFileExtensions.
  • No fallback to the outermost tsconfig in auto-discovery (oxc-project/oxc-resolver#1220). Auto-discovery no longer attaches the topmost ancestor tsconfig.json to a file that no project actually owns (via files / include / project references). Previously such a file inherited the outermost ancestor's paths / baseUrl, leaking aliases into files that project does not own. oxc-resolver now returns no config in that case, matching tsserver / typescript-go, which route such files to an inferred project with no aliases.

🚀 Features

  • add option named for invalid return type errors for more places (#9846) by @shulaoda
  • add option names for invalid return type errors (#9821) by @sapphi-red
  • transform: infer decorator strictNullChecks from tsconfig (#9590) by @kylecannon
  • tracing: gate chrome-json trace layer behind chrome-tracing feature (#9773) by @hyf0
  • dev: align test-dev-server with Vite dev server (#9668) by @h-a-n-a

🐛 Bug Fixes

  • plugin_timings: point doc link to existing checks reference page (#9837) by @hyf0
  • generator: correct contradictory panic message in cjs cross-chunk symbol lookup (#9836) by @hyf0
  • esm: preserve with clause on export * from external (#9796) by @hyf0
  • Make external_import_binding_merger deterministic (#9755) by @naruaway
  • surface invalid manualCodeSplitting group test regex as an error (#9792) by @shulaoda
  • avoid panic on output.file without a file name (#9789) by @shulaoda
  • avoid O(N^2) rendering of high-volume diagnostics (#9748) (#9749) by @IWANABETHATGUY
  • avoid panic on JSON numbers outside f64 range (#9788) by @shulaoda
  • deps: bump mimalloc-safe to 0.1.63 to fix worker_threads segfault (#9785) by @shulaoda
  • cache ESM evaluation errors (#9784) by @sapphi-red
  • wrap node require helper in pure IIFE (#9783) by @kb019
  • lazy-barrel: load locally-used imports on a re-exported record (#9757) by @shulaoda
  • avoid dangling wrapped-ESM init call across chunks (#9502) (#9717) by @IWANABETHATGUY
  • dev: detect same-second rewrites in CI poll watcher (#9736) by @h-a-n-a
  • dev: force rebuild after HMR errors (#9686) by @h-a-n-a
  • dev: print build errors on browser refresh after a failed build (#9652) by @h-a-n-a

🚜 Refactor

📚 Documentation

  • tsconfig: align auto-discovery docs with oxc-resolver behavior (#9845) by @shulaoda
  • relocate meta/design to internal-docs, split design from implementation (#9826) by @h-a-n-a
  • meta: add options normalization design doc (#9818) by @IWANABETHATGUY
  • document why the napi tracing feature is enabled (#9766) by @Boshen
  • dev: move test-dev-server test guidance into the testing docs (#9809) by @h-a-n-a

⚡ Performance

  • drop unused regex unicode property tables from the binding (#9848) by @Boshen
  • drop urlencoding crate in favor of percent-encoding (#9851) by @Boshen
  • drop owo-colors supports-colors feature in vite reporter (#9824) by @Boshen
  • skip enum member value extraction for non-TypeScript modules (#9840) by @shulaoda
  • rolldown: use unstable sort for itertools sorted_by at unique-key sites (#9827) by @Boshen
  • cheaper deterministic ordering in external import binding merger (#9810) by @IWANABETHATGUY
  • disable idna's ICU backend by pinning idna_adapter to 1.0.0 (-129 KB) (#9811) by @Boshen
  • size: use unstable sort where stability is unneeded (#9803) by @Boshen
  • remove num-format dependency from vite reporter (#9795) by @Boshen
  • reduce js callback error size (#9776) by @Boshen
  • rolldown_error: remove Debug supertrait from BuildEvent (#9798) by @Boshen
  • reduce plugin hook order code size (#9761) by @Boshen
  • deps: disable infer default features to reduce binary size (#9765) by @Boshen
  • reduce pluginable monomorphization size (#9771) by @Boshen
  • avoid rebuilding replace plugin values (#9764) by @Boshen
  • defer link-stage-output drop to rayon workers after output is produced (#9733) by @Brooooooklyn
  • tree-shaking: hoist already-included guard to call sites in inclusion DFS (#9738) by @Brooooooklyn
  • renamer: dedup before allocating the owned name in add_symbol_in_root_scope (#9740) by @Brooooooklyn

🧪 Testing

  • allocs: track allocation counts for rolldown_sourcemap (#9835) by @hyf0
  • bench: add CodSpeed micro-benchmarks for rolldown_sourcemap (#9834) by @hyf0
  • add cjs named export mutation test (#9823) by @sapphi-red
  • dev: restore shared-page reliability conventions in AGENTS.md (#9786) by @h-a-n-a
  • dev: add AGENTS.md test guidance for agents (#9763) by @h-a-n-a
  • dev: split out initial-build-error into its own playground (#9772) by @h-a-n-a
  • dev: align e2e suite with Vite and parallelize playgrounds (#9759) by @h-a-n-a
  • remove unnecessary module namespace object JSON serializations in tests (#9725) by @sapphi-red
  • use assert.deepStrictEqual instead of assert.deepEqual by using assert/strict instead of assert (#9724) by @sapphi-red
  • hmr: add test case for #5301 (#5302) by @sapphi-red
  • dev: add tests for dev-engine principles (#9720) by @h-a-n-a
  • dev: align dev-engine test harness with Vite (#9684) by @h-a-n-a

⚙️ Miscellaneous Tasks

❤️ New Contributors

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

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 11 Jun 09:09
Immutable release. Only release title and notes can be modified.
d7f919c

[1.1.1] - 2026-06-11

🚀 Features

  • ecmascript_utils: introduce AstFactory for AST construction (#9682) by @hyf0
  • drop no-op init calls for empty wrapped-ESM modules (#9678) by @IWANABETHATGUY

🐛 Bug Fixes

  • resolver: honor package.json#type for .jsx/.tsx extensions (#9690) (#9699) by @IWANABETHATGUY
  • hmr: report the full-reload reason for the invalidate-loop case (#9708) by @hyf0
  • explicit moduleSideEffects from a hook must take priority over the package.json#sideEffects (#9688) by @sapphi-red
  • keep the rolldown-runtime name for the standalone runtime chunk (#9685) by @shulaoda
  • lazy-barrel: request all exports for entry barrels on first encounter (#9672) by @shulaoda
  • finalizer: skip init_*() for tree-shaken wrapped ESM owners (#9669) by @IWANABETHATGUY
  • order chunk.imports by execution order (#9654) by @chuganzy
  • vite-resolve: preserve slash separators for Sass partial exports (#9546) by @cjc0013
  • cross-chunk CJS wrapper shadowed by author-local binding (#9648) by @IWANABETHATGUY

🚜 Refactor

  • precompute wrapped-ESM init metadata in generate stage (#9712) by @IWANABETHATGUY
  • ecmascript_utils: fold construction ext traits onto AstFactory and delete AstSnippet (#9702) by @hyf0
  • finalizer: finish ScopeHoistingFinalizer migration to AstFactory (#9701) by @hyf0
  • finalizer: migrate module_finalizers/mod.rs to AstFactory (#9700) by @hyf0
  • hmr: migrate hmr finalizer to AstFactory (#9695) by @hyf0
  • plugin: migrate vite_build_import_analysis to AstFactory (#9693) by @hyf0
  • scanner: migrate tweak_ast_for_scanning to AstFactory (#9683) by @hyf0
  • always split runtime module first (#9419) by @IWANABETHATGUY

📚 Documentation

  • tsconfig: correct auto-discovery resolution to match TypeScript (#9714) by @shulaoda
  • design: plan to unify all internal AST construction (#9673) by @hyf0
  • tsconfig: align reference resolution docs with TypeScript behavior (#9641) by @shulaoda

⚡ Performance

  • avoid per-module join Strings in scope-hoisting concatenation (#9645) by @Boshen
  • avoid intermediate Strings in the ESM export clause (#9644) by @Boshen
  • reuse a scratch buffer for facade namespace names in the scanner (#9642) by @Boshen
  • reuse the import-matching tracker stack across named imports (#9643) by @Boshen
  • avoid cloning the per-chunk export-items map in render_chunk_exports (#9639) by @Boshen
  • avoid CompactStr allocation in sorted-exports membership check (#9640) by @Boshen

🧪 Testing

⚙️ Miscellaneous Tasks

  • update react repo links (#9711) by @iiio2
  • remove outdated pnpm configurations (#9666) by @btea
  • deps: update github actions to v2.81.5 (#9665) by @renovate[bot]
  • testing: migrate test harness off deprecated inlineDynamicImports (#9710) by @IWANABETHATGUY
  • hmr: delete commented-out dead code left from old register-module codegen (#9707) by @hyf0
  • deps: update napi-rs toolchain (#9706) by @shulaoda
  • deps: update rollup submodule for tests to v4.61.1 (#9676) by @rolldown-guard[bot]
  • deps: update test262 submodule for tests (#9677) by @rolldown-guard[bot]
  • deps: update oxc to 0.135.0 (#9670) by @Boshen
  • pass ALGOLIA_APP_ID and ALGOLIA_API_KEY to void deploy (#9667) by @Boshen
  • deps: update github actions (#9662) by @renovate[bot]
  • deps: update rust crates (#9663) by @renovate[bot]
  • deps: update rolldown-plugin-dts to v0.25.2 (#9661) by @renovate[bot]
  • deps: update typos to v1.47.2 (#9660) by @renovate[bot]
  • deps: update docs dependencies (#9657) by @bddjr
  • deps: update typos to v1.47.1 (#9655) by @renovate[bot]
  • deploy website in its own workflow, only on docs output change (#9650) by @Boshen
  • publish to pkg.pr.new add pm and commentWithDev option (#9638) by @btea

❤️ New Contributors