unstale

npm / rollup

rollup

What changed in rollup 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

1 breaking1 security1 deprecations2 new APIs and options3 performance6 behavior and defaults52 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.1 on npm

rollup 466 changes

Breaking changes 1

  • Rollup throws if the generated bundle contains paths that would leave the output directory.

    3.30.0, 4.59.0release notesrelease notes

Security 1

Deprecations 1

  • Returning import attributes from load or transform hooks is deprecated and will no longer be supported with Rollup 5.

    4.57.0release notes

New APIs and options 2

  • Rollup supports source phase imports as long as they are external.

    4.60.0release notes

  • Import attributes are now available in plugin hooks that did not provide them before.

    4.57.0release notes

Performance 3

  • Rendering ES output is slightly faster by avoiding repeated export name scans when rendering ES chunks.

    4.64.1release notes

  • Unused Symbol.hasInstance, Symbol.dispose and Symbol.asyncDispose properties can now be tree-shaken.

    4.54.0release notes

  • Caching generated variable names improves rendering performance.

    4.53.0release notes

Behavior and default changes 6

  • Try-catch deoptimization now covers calling methods on objects, retaining callbacks of helper methods called from try statements.

    4.64.0release notes

  • Rollup can analyze function return values in more cases, which may affect build-time analysis.

    4.63.0release notes

  • Static dependencies shared between manual chunks and entry points are extracted into separate chunks.

    4.62.0release notes

  • Entry modules are sorted to make chunk hash names deterministic.

    4.61.0release notes

  • Rollup also supports the annotation before variable declarations that declare function expressions.

    4.58.0release notes

  • Rollup tracks object property inclusions of dynamic namespace members.

    4.56.0release notes

Fixes and other changes 52

  • Live-bindings are now properly maintained for aliased exports.

    4.64.9release notes

  • Typed array constructor calls are retained when their argument has iteration side effects.

    4.64.9release notes

  • Chunk hashes now change when sourcemap comments change, avoiding stale hashes when those comments are modified.

    4.64.8release notes

  • Fixes some relative import resolution edge cases, matching Node's join and relative behavior for "." and ".." segments in the browser.

    4.64.8release notes

  • Fixes watching not-yet-created files from plugins when several share a directory.

    4.64.7release notes

  • Side effects in class instance field initializers are retained when instantiating a class, avoiding incorrect tree-shaking.

    4.64.6release notes

  • Detection now recognizes top-level asynchronous for...of loops and async disposal.

    4.64.6release notes

  • Prevents cycles when using indirect top-level await for dynamic imports.

    4.64.5release notes

  • The Rollup WASM build is supported on big-endian hosts.

    4.64.4release notes

  • Fixes a performance regression when bundling code with deeply nested property calls.

    4.64.3release notes

  • When build errors occur, errors from closeBundle no longer replace them.

    4.64.2release notes

  • Certain CoreJS helpers are no longer wrongly tree-shaken.

    4.64.2release notes

  • Fixes cases where some core-js feature-detections were not triggering properly.

    4.64.0release notes

  • External re-exports used in a reified dynamic namespace are now always imported.

    4.63.6release notes

  • Watch mode now terminates when closed via Ctrl+C instead of hanging.

    4.63.5release notes

  • Watch mode no longer starts overlapping runs when plugins invalidate files at the wrong time.

    4.63.5release notes

  • Watch mode events are now emitted to listeners correctly in edge cases, especially when errors occur.

    4.63.5release notes

  • Quotes and backslashes in import attribute values are escaped so Rollup does not generate invalid code.

    4.63.4release notes

  • Cached module meta information is now exposed in shouldTransformCachedModule, allowing plugins to access it during cache checks.

    4.63.4release notes

  • The browser shims for basename and extname now fully match NodeJS.

    4.63.3release notes

  • Tree-shaking respects Windows line terminators when removing line breaks needed to prevent automatic semicolon insertion.

    4.63.3release notes

  • Failures on invalidation are always reported and recovered from in watch mode.

    4.63.3release notes

  • Fixes filtering logs by nested properties via the CLI when those properties have primitive values.

    4.63.2release notes

  • Function return value tracking was reverted until the most recent issue is understood.

    4.63.1release notes

  • Fixes invalid module concatenations that could result from compact mode.

    4.62.5release notes

  • Resolves a regression when using Rollup on older Linux distributions and enforces glibc ≤ 2.28 compatibility.

    4.62.4release notes

  • Illegal characters in the preserved modules input base are sanitized before computing preserved module chunk names.

    4.62.3release notes

  • When using minChunkSize with hoisting disabled, Rollup no longer adds spurious side-effect-free external imports to chunks.

    4.62.2release notes

  • Fix an issue where getLogFilter would match additional logs.

    4.62.1release notes

  • Preserve multipart file extensions when deconflicting output chunks by inserting conflict numbers before the first extension.

    4.62.1release notes

  • Avoids extraneous newlines when adding headers via plugins.

    4.61.1release notes

  • Fixes a rare issue where starting Rollup would hang on Windows.

    4.61.1release notes

  • Chunk assignment is stabilized across parallel file reads, improving the stability of chunk hashes.

    4.60.4release notes

  • Fixes variable rendering when generating different formats from the same build.

    4.60.2release notes

  • Fixes a caching issue that could cause side effect imports to be dropped.

    4.60.1release notes

  • Fixes a crash when using lazy dynamic imports with moduleSideEffects:false.

    4.59.1release notes

  • Ensures exports of a dynamic import are fully included when called from a try...catch.

    4.57.1release notes

  • Fixes a heap corruption issue on Windows.

    4.57.1release notes

  • Rollup handles methods that access dynamically imported namespace members via this.

    4.56.0release notes

  • Fixes the semicolon insertion position in JSX variable declarations.

    4.55.3release notes

  • Manual chunks are sorted by module execution order to reduce circular dependency issues.

    4.55.2release notes

  • Fixes the artifact reference for OpenBSD, so developers can use the correct release artifact.

    4.55.1release notes

  • Namespace properties referenced only from a try-catch are included.

    4.54.0release notes

  • Well-known-Symbol-valued properties are no longer tree-shaken except in select cases.

    4.54.0release notes

  • Fixes the semicolon insertion position when using JSX.

    4.53.5release notes

  • Generates spec-compliant sourcemaps when sources content is excluded by setting sourcesContent to undefined instead of null.

    4.53.5release notes

  • Rollup no longer removes Symbol.asyncDispose properties with (await) using declarations.

    4.53.4release notes

  • Rollup no longer removes Symbol.dispose properties with (await) using declarations.

    4.53.4release notes

  • Fixes assignments being wrongly tree-shaken when they mutate a value.

    4.53.3release notes

  • Fixes an error that flagged too many modules as having an unused external import.

    4.53.3release notes

  • Rollup no longer throws when using invalid escape sequences in template literals.

    4.53.2release notes

  • Sourcemap debugIds are now always valid UUIDs, avoiding invalid-length identifiers.

    4.52.5release notes