[1.0.0-beta.54] - 2025-12-11
⏱️ Plugin Timing Analysis
- Added
checks.pluginTimingsoption to emit warnings when plugins significantly impact build performance - More details: https://rolldown.rs/options/checks#plugintimings
Warning
For hooks using ctx.resolve() or ctx.load(), the reported time includes waiting for other plugins, which may overestimate that plugin's actual cost.
Additionally, since plugin hooks execute concurrently, the statistics represent accumulated time rather than wall-clock time. The measured duration also includes Rust-side processing overhead, Tokio async scheduling overhead, NAPI data conversion overhead, and JavaScript event loop overhead.
🚀 Features
- rolldown_plugin_vite_reporter: add newline after build summary for better log separation (#7458) by @shulaoda
- plugin: collect plugin hook execution timings (#7364) by @shulaoda
- test-dev-server: reload page when detecting hmr reload message (#7422) by @hyf0
- rolldown_plugin_vite_dynamic_import_vars: add transform-based v2 implementation (#7400) by @shulaoda
- rolldown_plugin_vite_import_glob: add transform-based v2 implementation (#7394) by @shulaoda
- rolldown_plugin_vite_wasm_helper: add v2 implementation (#7402) by @shulaoda
- expose error location and context fields on JS API error objects (#7341) by @Copilot
- add
CIRCULAR_REEXPORTerror (#7337) by @Copilot - support emit prebuilt chunk (#7277) by @Copilot
🐛 Bug Fixes
- preserve object key order when parse json with serde_json (#7443) by @IWANABETHATGUY
- improve JSON parsing with serde_json to emit proper diagnostic (#7442) by @IWANABETHATGUY
- deconflict external symbols in CJS modules (#7447) by @IWANABETHATGUY
- rolldown_plugin_vite_transform,rolldown_plugin_vite_resolve: enable
yarnPnpoption when pnp is detected (#5791) by @sapphi-red - skip deconflicting top-level symbols for CJS modules (#7425) by @IWANABETHATGUY
- rolldown_plugin_esm_external_require: run resolveId hook before other plugins (#7426) by @shulaoda
- avoid duplicate underscores in legitimized identifiers (#7418) by @IWANABETHATGUY
- use
process.on('exit')instead ofsignal-exiton webcontainers (#7421) by @sapphi-red - dev: remove
importswhen an import is removed (#7348) by @sapphi-red - bench: access latency.mean instead of mean in tinybench result (#7417) by @shulaoda
- path compression in symbol linking (#7392) by @IWANABETHATGUY
- rolldown_plugin_vite_resolve: add RwLock to avoid clearing cache while resolving (#7386) by @sapphi-red
- handle JSON prototype properties correctly (#7383) by @IWANABETHATGUY
- preserve entry signature strict chunk merging (#7343) by @IWANABETHATGUY
- support eliminating multiple unused dynamic imports in a single statement (#7361) by @IWANABETHATGUY
- eliminate unreachable dynamic entry (#7356) by @IWANABETHATGUY
NormalizedInputOptions#cwdshould always exists (#7360) by @hyf0- cli: support multiple comma-separated define arguments (#7340) by @Copilot
- remove redundant symbol param in __reExport runtime helper (#7346) by @IWANABETHATGUY
- always use __export for empty namespace objects when symbols enabled (#7345) by @IWANABETHATGUY
- relax the restriction of preserveEntrySignatures when merging chunks (#7339) by @IWANABETHATGUY
🚜 Refactor
- builtin-plugin: make config parameter required for vite plugins (#7451) by @shulaoda
- move esbuild test related scripts to
scripts/src/esbuild-tests(#7377) by @sapphi-red - rewrite gen-esbuild-test in TypeScript (#7376) by @sapphi-red
- remove unnecessary Option in current_stmt_idx (#7359) by @IWANABETHATGUY
- move more code into chunk optimizer (#7335) by @IWANABETHATGUY
📚 Documentation
- checks: clarify pluginTimings measures CPU time due to concurrent execution (#7448) by @shulaoda
- checks: add accuracy note to pluginTimings documentation (#7441) by @shulaoda
- development-guide: add esbuild test description (#7439) by @sapphi-red
- checks: expand
pluginTimingsdocumentation with detection mechanism (#7428) by @shulaoda - add checks options documentation (#7427) by @shulaoda
- development-guide: add test262 integration test description (#7430) by @sapphi-red
- guide: fix grammer in getting-started (#7331) by @jakeparis
🧪 Testing
- rollup-tests: make
--grepwork and document it (#7431) by @sapphi-red - add a way to run some test262 test cases by name (#7429) by @sapphi-red
- rolldown_plugin_vite_dynamic_import_vars: add test cases for v2 implementation (#7401) by @shulaoda
- rolldown_plugin_vite_import_glob: add test cases for v2 implementation (#7395) by @shulaoda
- triage new esbuild tests (#7405) by @sapphi-red
- hmr: delete file used (#5933) by @sapphi-red
- watch: add
watchChangehookcreate/deletetests (#7349) by @sapphi-red - hmr: delete file not used anymore (#5932) by @sapphi-red
- triage esbuild failed reasons (#7391) by @sapphi-red
- change esbuild tests stats and diff generation (#7379) by @sapphi-red
- dev: add
continuous generate hmr patchanddebounce bundletests (#7368) by @hyf0 - add new esbuild tests (#7353) by @sapphi-red
⚙️ Miscellaneous Tasks
- setup Node before updating snapshots for test262 update (#7435) by @sapphi-red
- run tests when submodules are updated (#7455) by @sapphi-red
- exclude NUL path pattern to prevent crash on Windows (#7450) by @IWANABETHATGUY
- run cargo-test for esbuild script changes and update esbuild snapshot (#7440) by @sapphi-red
- jsx_import_meta tests to
ignoreReasonsdue to architectural limitation (#7434) by @Copilot - deps: update dependency oxlint-tsgolint to v0.8.5 (#7433) by @renovate[bot]
- update test dependencies automatically (#7432) by @sapphi-red
- remove unused code (#7420) by @IWANABETHATGUY
- add back
just update-esbuild-diffand add it to CI (#7404) by @sapphi-red - deps: update oxc-resolver to 11.15.0 (#7415) by @shulaoda
- deps: update rust crate napi to v3.7.0 (#7393) by @renovate[bot]
- fix esbuild compatibility metrics calculation (#7390) by @sapphi-red
- support
tsconfig: truein rust tests (#7389) by @sapphi-red - hide oxc runtime in snapshots (#7388) by @sapphi-red
- deps: update oxc to v0.102.0 (#7385) by @camc314
- improve esbuild tests to download snapshots automatically (#7378) by @sapphi-red
- deps: update dependency tinybench to v6 (#7371) by @renovate[bot]
- deps: update actions/checkout action to v6 (#7370) by @renovate[bot]
- deps: update rust crates (#7367) by @renovate[bot]
- deps: update dependency oxlint to v1.32.0 (#7374) by @renovate[bot]
- deps: update dependency oxlint-tsgolint to v0.8.4 (#7373) by @renovate[bot]
- node/test-dev-server: support using custom html file (#7357) by @hyf0
- test: setup browser-based e2e test for
test-dev-server(#7351) by @hyf0 - pin pnpm to version 10.23.0 (#7369) by @IWANABETHATGUY
- deps: update dependency rolldown-plugin-dts to v0.18.3 (#7372) by @renovate[bot]
- deps: update github-actions (#7365) by @renovate[bot]
- deps: update npm packages (#7366) by @renovate[bot]
- polish the comments about
SymbolRefFlags(#7358) by @IWANABETHATGUY - deps: update dependency rolldown-plugin-dts to v0.18.2 (#7355) by @renovate[bot]
- fix esbuild test generation script (#7352) by @sapphi-red
- apply cargo shear suggestion (#7347) by @IWANABETHATGUY
- deps: update oxc to v11.15.0 (#7344) by @renovate[bot]
- deps: update dependency @napi-rs/cli to v3.5.0 (#7338) by @renovate[bot]
- deps: update dependency oxlint to v1.31.0 (#7305) by @renovate[bot]
- update rollup-tests results (#7333) by @sapphi-red
- update rollup-tests Rollup version (#7332) by @sapphi-red
- add ignore config for test262 submodule (#7326) by @Copilot
❤️ New Contributors
- @jakeparis made their first contribution in #7331
Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com