Détail du package

@rollup/rollup-darwin-arm64

rollup15.6mMIT4.50.0

Native bindings for Rollup

readme

@rollup/rollup-darwin-arm64

This is the aarch64-apple-darwin binary for rollup

changelog

rollup changelog

4.50.0

2025-08-31

Features

  • Support openharmony-arm64 platform (#6081)

Bug Fixes

  • Fix loading of extensionless imports in config files (#6084)

Pull Requests

  • #6081: Add support for openharmony-arm64 platform (@hqzing, @lukastaegert)
  • #6084: Return null to defer to the default resolution behavior (@TrickyPi)

4.49.0

2025-08-27

Features

  • Allow config plugins to resolve imports first before deciding whether to treat them as external (#6038)

Pull Requests

  • #6038: feat: Run external check in cli/run/loadConfigFile.ts as last in order to allow handling of e.g. workspace package imports in TS monorepos correctly (@stazz, @TrickyPi)
  • #6082: Improve build pipeline performance (@lukastaegert)

4.48.1

2025-08-25

Bug Fixes

  • Correctly ignore white-space in JSX strings around line-breaks (#6051)

Pull Requests

  • #6051: fix: handle whitespace according to JSX common practice (@cyyynthia)
  • #6078: build: optimize pipeline take two (@cyyynthia)

4.48.0

2025-08-23

Features

  • If configured, also keep unparseable import attributes of external dynamic imports in the output(#6071)

Bug Fixes

  • Ensure variables referenced in non-removed import attributes are included (#6071)

Pull Requests

  • #6071: Keep attributes for external dynamic imports (@TrickyPi)
  • #6079: fix(deps): update swc monorepo (major) (@renovate[bot])
  • #6080: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])

4.47.1

2025-08-21

Bug Fixes

  • Revert build process changes to investigate issues (#6077)

Pull Requests

  • #6077: Revert "build: aggressively optimize wasm build, improve pipeline (#6053)" (@lukastaegert)

4.47.0

2025-08-21

Features

  • Aggressively reduce WASM build size (#6053)

Bug Fixes

  • Fix illegal instruction error on Android ARM platforms (#6072)
  • Allow to pass explicit undefined for optional fields in Rollup types (#6061)

Pull Requests

  • #6053: build: aggressively optimize wasm build, improve pipeline (@cyyynthia)
  • #6061: fix(types): add support for exactOptionalPropertyTypes (@remcohaszing, @lukastaegert)
  • #6072: build(rust): mimalloc-safe/no_opt_arch on aarch64 (@cyyynthia)

4.46.4

2025-08-20

Bug Fixes

  • Do not omit synthetic namespaces when only accessed via in operator (#6052)

Pull Requests

  • #6052: fix: don't optimize in with syntheticNamedExports (@hi-ogawa)
  • #6074: Update transitive dependency to fix audit (@lukastaegert)

4.46.3

2025-08-18

Bug Fixes

  • Resolve illegal instruction error on arm64 architectures (#6055)
  • Resolve sourcemap generation performance regression (#6057)

Pull Requests

  • #6043: Avoid generated by comment diff on Windows (@sapphi-red)
  • #6048: chore(deps): update dependency cross-env to v10 (@renovate[bot], @lukastaegert)
  • #6049: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #6055: Fix illegal instruction error on arm64 by enabling no_opt_arch feature for mimalloc-safe (@sapphi-red)
  • #6057: fix: tweak the fallback logic for tracing segment (@TrickyPi, @lukastaegert)
  • #6062: docs: update Rust toolchain instructions (@situ2001, @lukastaegert)
  • #6063: fix(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #6067: chore(deps): update actions/checkout action to v5 (@renovate[bot], @lukastaegert)
  • #6068: chore(deps): update actions/download-artifact action to v5 (@renovate[bot])
  • #6069: fix(deps): update rust crate swc_compiler_base to v31 (@renovate[bot], @lukastaegert)

4.46.2

2025-07-29

Bug Fixes

  • Fix in-operator handling for external namespace and when the left side cannot be analyzed (#6041)

Pull Requests

  • #6041: Correct the logic of include in BinaryExpression and don't optimize external references away (@TrickyPi, @cyyynthia, @lukastaegert)

4.46.1

2025-07-28

Bug Fixes

  • Do not fail when using the in operator on external namespaces (#6036)

Pull Requests

  • #6036: disables optimization for external namespace when using the in operator (@TrickyPi)

4.46.0

2025-07-27

Features

  • Optimize in checks on namespaces to keep them treeshake-able (#6029)

Pull Requests

  • #5991: feat: update linux-loongarch64-gnu (@wojiushixiaobai, @lukastaegert)
  • #6029: feat: optimize in checks on namespaces to keep them treeshake-able (@cyyynthia, @lukastaegert)
  • #6033: fix(deps): update swc monorepo (major) (@renovate[bot], @lukastaegert)

4.45.3

2025-07-26

Bug Fixes

  • Do not fail build if a const is reassigned but warn instead (#6020)
  • Fail with a helpful error message if an exported binding is not defined (#6023)

Pull Requests

  • #6014: chore(deps): update dependency @vue/language-server to v3 (@renovate[bot])
  • #6015: chore(deps): update dependency vue-tsc to v3 (@renovate[bot], @lukastaegert)
  • #6016: fix(deps): update swc monorepo (major) (@renovate[bot], @lukastaegert)
  • #6017: fix(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #6020: Make const reassignments only a warning (@lukastaegert)
  • #6023: Throw descriptive error message for used export is not defined (@TrickyPi)
  • #6027: feat: upgrade to NAPI-RS 3 stable (@Brooooooklyn)
  • #6028: Update eslint-plugin-unicorn to resolve vulnerability (@lukastaegert)
  • #6034: fix(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)

4.45.1

2025-07-15

Bug Fixes

  • Resolve crash when using certain conditional expressions (#6009)

Pull Requests

  • #6009: Add hasDeoptimizedCache flag for ConditionalExpression (@TrickyPi)

4.45.0

2025-07-12

Features

  • Improve tree-shaking when both branches of a conditional expression return the same boolean value (#6000)
  • In environments that support both CJS and ESM, prefer the ESM build of Rollup (#6005)

Bug Fixes

  • Ensure static blocks do not prevent tree-shaking if they access this (#6001)

Pull Requests

  • #6000: feat: improve get literal value for conditional expression (@ahabhgk, @lukastaegert)
  • #6001: Correct the parent scope for static blocks (@TrickyPi, @lukastaegert)
  • #6005: fix: export field order prefer esm (@DylanPiercey)

4.44.2

2025-07-04

Bug Fixes

  • Correctly handle @__PURE__ annotations after new keyword (#5998)
  • Generate correct source mapping for closing braces of block statements (#5999)

Pull Requests

  • #5998: Support @__PURE__ when nested after new in constructor invocations (@TrickyPi)
  • #5999: Add location info for closing brace of block statement (@TrickyPi)
  • #6002: chore(deps): update dependency vite to v7 (@renovate[bot], @lukastaegert)
  • #6004: fix(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)

4.44.1

2025-06-26

Bug Fixes

  • Reinstate maxParallelFileOps limit of 1000 to resolve the issue for some (#5992)

Pull Requests

  • #5988: fix(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5992: Set maxParallelFileOps to 1000 (@lukastaegert)

4.44.0

2025-06-19

Features

  • Remove limit on maxParallelFileOps as this could break watch mode with the commonjs plugin (#5986)

Bug Fixes

  • Provide better source mappings when coarse intermediate maps are used (#5985)

Pull Requests

  • #5984: fix(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5985: Improve approximation of coarse sourcemap segments (@TrickyPi)
  • #5986: Remove limit on max parallel file ops (@lukastaegert)

4.43.0

2025-06-11

Features

  • Provide new fs option and this.fs API to replace file system (#5944)

Pull Requests

  • #5944: feat(options): Add an option for overriding the file system module in the JS API (@EggDice, @lukastaegert)

4.42.0

2025-06-06

Features

  • Add option to allow the input to be located in the output in watch mode (#5966)

Pull Requests

  • #5966: feat: watch mode add allowInputInsideOutputPath option (@btea, @lukastaegert)

4.41.2

2025-06-06

Bug Fixes

  • Detect named export usages in dynamic imports with then and non-arrow function expressions (#5977)
  • Do not replace usages of constant variables with their values for readability (#5968)

Pull Requests

  • #5968: fix: preserve constant identifiers in unary expressions instead of magic numbers (@OmkarJ13, @lukastaegert)
  • #5969: chore(deps): update dependency yargs-parser to v22 (@renovate[bot], @lukastaegert)
  • #5970: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5971: chore(deps): lock file maintenance (@renovate[bot])
  • #5976: Update README.md (@ftlno, @lukastaegert)
  • #5977: fix: consider function expression in thenable when tree-shaking dynamic imports (@TrickyPi)
  • #5981: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5982: Debug/fix watch pipeline (@lukastaegert)

4.41.1

2025-05-24

Bug Fixes

  • If a plugin calls this.resolve with skipSelf: true, subsequent calls when handling this by the same plugin with same parameters will return null to avoid infinite recursions (#5945)

Pull Requests

  • #5945: Avoid recursively calling a plugin's resolveId hook with same id and importer (@younggglcy, @lukastaegert)
  • #5963: fix(deps): update swc monorepo (major) (@renovate[bot])
  • #5964: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])

4.41.0

2025-05-18

Features

  • Detect named exports in more dynamic import scenarios (#5954)

Pull Requests

  • #5949: ci: use node 24 (@btea, @lukastaegert)
  • #5951: chore(deps): update dependency pretty-bytes to v7 (@renovate[bot])
  • #5952: fix(deps): update swc monorepo (major) (@renovate[bot], @lukastaegert)
  • #5953: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5954: enhance tree-shaking for dynamic imports (@TrickyPi, @renovate[bot], @lukastaegert)
  • #5957: chore(deps): update dependency lint-staged to v16 (@renovate[bot], @lukastaegert)
  • #5958: fix(deps): update rust crate swc_compiler_base to v20 (@renovate[bot], @lukastaegert)
  • #5959: fix(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5960: Use spawn to run CLI tests (@lukastaegert)

4.40.2

2025-05-06

Bug Fixes

  • Create correct IIFE/AMD/UMD bundles when using a mutable default export (#5934)
  • Fix execution order when using top-level await for dynamic imports with inlineDynamicImports (#5937)
  • Throw when the output is watched in watch mode (#5939)

Pull Requests

  • #5934: fix(exports): avoid "exports is not defined" ReferenceError (@dasa)
  • #5937: consider TLA imports have higher execution priority (@TrickyPi)
  • #5939: fix: watch mode input should not be an output subpath (@btea)
  • #5940: chore(deps): update dependency vite to v6.3.4 [security] (@renovate[bot])
  • #5941: chore(deps): update dependency eslint-plugin-unicorn to v59 (@renovate[bot])
  • #5942: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5943: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])

4.40.1

2025-04-28

Bug Fixes

  • Limit hash size for asset file names to the supported 21 (#5921)
  • Do not inline user-defined entry chunks or chunks with explicit file name (#5923)
  • Avoid top-level-await cycles when non-entry chunks use top-level await (#5930)
  • Expose package.json via exports (#5931)

Pull Requests

  • #5921: fix(assetFileNames): reduce max hash size to 21 (@shulaoda)
  • #5923: fix: generate the separate chunk for the entry module with explicated chunk filename or name (@TrickyPi)
  • #5926: fix(deps): update rust crate swc_compiler_base to v18 (@renovate[bot])
  • #5927: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5928: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5930: Avoid chunks TLA dynamic import circular when TLA dynamic import used in non-entry modules (@TrickyPi)
  • #5931: chore: add new ./package.json entry (@JounQin, @lukastaegert)
  • #5936: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])

4.40.0

2025-04-12

Features

  • Only show eval warnings on first render and only when the call is not tree-shaken (#5892)
  • Tree-shake non-included dynamic import members when the handler just maps to one named export (#5898)

Bug Fixes

  • Consider dynamic imports nested within top-level-awaited dynamic import expressions to be awaited as well (#5900)
  • Fix namespace rendering when tree-shaking is disabled (#5908)
  • When using multiple transform hook filters, all of them need to be satisfied together (#5909)

Pull Requests

  • #5892: Warn when eval or namespace calls are rendered, not when they are parsed (@SunsetFi, @lukastaegert)
  • #5898: feat: treeshake dynamic import chained member expression (@privatenumber, @lukastaegert)
  • #5900: consider the dynamic import within a TLA call expression as a TLA import (@TrickyPi)
  • #5904: fix(deps): update swc monorepo (major) (@renovate[bot])
  • #5905: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5908: Fix treeshake: false breaking destructured namespace imports (@Skn0tt)
  • #5909: Correct the behavior when multiple transform filter options are specified (@sapphi-red)
  • #5915: chore(deps): update dependency @types/picomatch to v4 (@renovate[bot])
  • #5916: fix(deps): update rust crate swc_compiler_base to v17 (@renovate[bot])
  • #5917: chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5918: chore(deps): update dependency vite to v6.2.6 [security] (@renovate[bot], @lukastaegert)

4.39.0

2025-04-02

Features

  • Do not create separate facade chunks if a chunk would contain several entry modules that allow export extension if there are no export name conflicts (#5891)

Bug Fixes

  • Mark the id property as optional in the filter for the resolveId hook (#5896)

Pull Requests

  • #5891: chunk: merge allow-extension modules (@wmertens, @lukastaegert)
  • #5893: chore(deps): update dependency vite to v6.2.4 [security] (@renovate[bot])
  • #5896: fix: resolveId id filter is optional (@sapphi-red)

4.38.0

2025-03-29

Features

  • Support .filter option in resolveId, load and transform hooks (#5882)

Pull Requests

  • #5882: Add support for hook filters (@sapphi-red)
  • #5894: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5895: chore(deps): update dependency eslint-plugin-unicorn to v58 (@renovate[bot])

4.37.0

2025-03-23

Features

  • Support Musl Linux on Riscv64 architectures (#5726)
  • Handles class decorators placed before the export keyword (#5871)

Bug Fixes

  • Log Rust panic messages to the console when using the WASM build (#5875)

Pull Requests

  • #5726: Add support for linux riscv64 musl (@fossdd, @leso-kn)
  • #5871: feat: support decorators before or after export (@TrickyPi)
  • #5875: capture Rust panic messages and output them to the console. (@luyahan, @lukastaegert)
  • #5883: Pin digest of 3rd party actions (@re-taro)
  • #5885: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])

4.36.0

2025-03-17

Features

  • Extend renderDynamicImport hook to provide information about static dependencies of the imported module (#5870)
  • Export several additional types used by Vite (#5879)

Bug Fixes

  • Do not merge chunks if that would create a top-level await cycle between chunks (#5843)

Pull Requests

  • #5843: avoiding top level await circular (@TrickyPi, @lukastaegert)
  • #5870: draft for extended renderDynamicImport hook (@iczero, @lukastaegert)
  • #5876: Update axios overrides to 1.8.2 (@vadym-khodak)
  • #5877: chore(deps): update dependency eslint-plugin-vue to v10 (@renovate[bot])
  • #5878: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5879: fix: export types (@sxzz)

4.35.0

2025-03-08

Features

  • Pass build errors to the closeBundle hook (#5867)

Pull Requests

  • #5852: chore(deps): update dependency eslint-plugin-unicorn to v57 (@renovate[bot], @lukastaegert)
  • #5862: fix(deps): update swc monorepo (major) (@renovate[bot], @lukastaegert)
  • #5867: feat(5858): make closeBundle hook receive the last error (@GauBen)
  • #5872: chore(deps): update dependency builtin-modules to v5 (@renovate[bot])
  • #5873: chore(deps): update uraimo/run-on-arch-action action to v3 (@renovate[bot])
  • #5874: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])

4.34.9

2025-03-01

Bug Fixes

  • Support JSX modes in WASM (#5866)
  • Allow the CustomPluginOptions to be extended (#5850)

Pull Requests

  • #5850: Revert CustomPluginOptions to be an interface (@sapphi-red, @lukastaegert)
  • #5851: Javascript to JavaScript (@dasa, @lukastaegert)
  • #5853: chore(deps): update dependency pinia to v3 (@renovate[bot])
  • #5854: fix(deps): update swc monorepo (major) (@renovate[bot])
  • #5855: fix(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5860: chore(deps): update dependency @shikijs/vitepress-twoslash to v3 (@renovate[bot])
  • #5861: chore(deps): update dependency globals to v16 (@renovate[bot])
  • #5863: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5864: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5866: Add jsx parameter to parseAsync in native.wasm.js (@TrickyPi)

4.34.8

2025-02-17

Bug Fixes

  • Do not make assumptions about the value of nested paths in logical expressions if the expression cannot be simplified (#5846)

Pull Requests

  • #5846: return UnknownValue if the usedbranch is unkown and the path is not empty (@TrickyPi)

4.34.7

2025-02-14

Bug Fixes

  • Ensure that calls to parameters are included correctly when using try-catch deoptimization (#5842)

Pull Requests

  • #5840: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5842: Fix prop inclusion with try-catch-deoptimization (@lukastaegert)

4.34.6

2025-02-07

Bug Fixes

  • Retain "void 0" in the output for smaller output and fewer surprises (#5838)

Pull Requests

  • #5835: fix(deps): update swc monorepo (major) (@renovate[bot], @lukastaegert)
  • #5838: replace undefined with void 0 for operator void (@TrickyPi)

4.34.5

2025-02-07

Bug Fixes

  • Ensure namespace reexports always include all properties of all exports (#5837)

Pull Requests

  • #5836: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5837: Include all paths of reexports if namespace is used (@lukastaegert)

4.34.4

2025-02-05

Bug Fixes

  • Do not tree-shake properties if a rest element is used in destructuring (#5833)

Pull Requests

  • #5833: include all properties if a rest element is destructed (@TrickyPi)

4.34.3

2025-02-05

Bug Fixes

  • Ensure properties of "this" are included in getters (#5831)

Pull Requests

  • #5831: include the properties that accessed by this (@TrickyPi)

4.34.2

2025-02-04

Bug Fixes

  • Fix an issue where not all usages of a function were properly detected (#5827)

Pull Requests

  • #5827: Ensure that functions provided to a constructor are properly deoptimized (@lukastaegert)

4.34.1

2025-02-03

Bug Fixes

  • Ensure throwing objects includes the entire object (#5825)

Pull Requests

  • #5825: Ensure that all properties of throw statements are included (@lukastaegert)

4.34.0

2025-02-01

Features

  • Tree-shake unused properties in object literals (re-implements #5420) (#5737)

Pull Requests

  • #5737: Reapply object tree-shaking (@lukastaegert, @TrickyPi)

4.33.0

2025-02-01

Features

  • Correctly detect literal value of more negated expressions (#5812)

Bug Fixes

  • Use the correct with/assert attribute key in dynamic imports (#5818)
  • Fix an issue where logical expressions were considered to have the wrong value (#5819)

Pull Requests

  • #5812: feat: optimize the literal value of unary expressions (@TrickyPi)
  • #5816: fix(deps): update swc monorepo (major) (@renovate[bot], @lukastaegert)
  • #5817: fix(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5818: support for changing the attributes key for dynamic imports (@TrickyPi)
  • #5819: Return UnknownValue if getLiteralValueAtPath is called recursively within logical expressions (@TrickyPi)
  • #5820: return null (@kingma-sbw)

4.32.1

2025-01-28

Bug Fixes

  • Fix possible crash when optimizing logical expressions (#5804)

Pull Requests

  • #5804: fix: set hasDeoptimizedCache to true as early as possible (@TrickyPi)
  • #5813: Fix typo (@kantuni)

4.32.0

2025-01-24

Features

  • Add watch.onInvalidate option to trigger actions immediately when a file is changed (#5799)

Bug Fixes

  • Fix incorrect urls in CLI warnings (#5809)

Pull Requests

  • #5799: Feature/watch on invalidate (@drebrez, @lukastaegert)
  • #5808: chore(deps): update dependency vite to v6.0.9 [security] (@renovate[bot])
  • #5809: fix: avoid duplicate rollupjs.org prefix (@GauBen, @lukastaegert)
  • #5810: chore(deps): update dependency @shikijs/vitepress-twoslash to v2 (@renovate[bot])
  • #5811: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])

4.31.0

2025-01-19

Features

  • Do not immediately quit when trying to use watch mode from within non-TTY environments (#5803)

Bug Fixes

  • Handle files with more than one UTF-8 BOM header (#5806)

Pull Requests

  • #5792: fix(deps): update rust crate swc_compiler_base to v8 (@renovate[bot])
  • #5793: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5794: chore(deps): lock file maintenance (@renovate[bot])
  • #5801: chore(deps): update dependency eslint-config-prettier to v10 (@renovate[bot])
  • #5802: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5803: Support watch mode in yarn, gradle and containers (@lukastaegert)
  • #5806: fix: strip all BOMs (@TrickyPi)

4.30.1

2025-01-07

Bug Fixes

  • Prevent invalid code when simplifying unary expressions in switch cases (#5786)

Pull Requests

  • #5786: fix: consider that literals cannot following switch case. (@TrickyPi)

4.30.0

2025-01-06

Features

  • Inline values of resolvable unary expressions for improved tree-shaking (#5775)

Pull Requests

  • #5775: feat: enhance the treehshaking for unary expression (@TrickyPi)
  • #5783: Improve CI caching for node_modules (@lukastaegert)

4.29.2

2025-01-05

Bug Fixes

  • Keep import attributes when using dynamic ESM import() expressions from CommonJS (#5781)

Pull Requests

  • #5772: Improve caching on CI (@lukastaegert)
  • #5773: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5780: feat: use picocolors instead of colorette (@re-taro)
  • #5781: fix: keep import attributes for cjs format (@TrickyPi)

4.29.1

2024-12-21

Bug Fixes

  • Fix crash from deoptimized logical expressions (#5771)

Pull Requests

  • #5769: Remove unnecessary lifetimes (@lukastaegert)
  • #5771: fix: do not optimize the literal value if the cache is deoptimized (@TrickyPi)

4.29.0

2024-12-20

Features

  • Treat objects as truthy and always check second argument to better simplify logical expressions (#5763)

Pull Requests

  • #5759: docs: add utf-8 encoding to JSON file reading (@chouchouji)
  • #5760: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5763: fix: introduce UnknownFalsyValue for enhancing if statement tree-shaking (@TrickyPi)
  • #5766: chore(deps): update dependency @rollup/plugin-node-resolve to v16 (@renovate[bot])
  • #5767: fix(deps): lock file maintenance minor/patch updates (@renovate[bot])

4.28.1

2024-12-06

Bug Fixes

  • Support running Rollup natively on LoongArch (#5749)
  • Add optional debugId to SourceMap types (#5751)

Pull Requests

  • #5749: feat: add support for LoongArch (@darkyzhou)
  • #5751: feat: Add debugId to SourceMap types (@timfish, @lukastaegert)
  • #5752: chore(deps): update dependency mocha to v11 (@renovate[bot])
  • #5753: chore(deps): update dependency vite to v6 (@renovate[bot])
  • #5754: fix(deps): update swc monorepo (major) (@renovate[bot])
  • #5755: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5756: Test if saving the Cargo cache can speed up FreeBSD (@lukastaegert)

4.28.0

2024-11-30

Features

  • Allow to specify how to handle import attributes when transpiling Rollup config files (#5743)

Pull Requests

  • #5743: fix: supports modify the import attributes key in the config file (@TrickyPi, @lukastaegert)
  • #5747: chore(deps): update codecov/codecov-action action to v5 (@renovate[bot])
  • #5748: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])

4.27.4

2024-11-23

Bug Fixes

  • Update bundled magic-string to support sourcemap debug ids (#5740)

Pull Requests

  • #5740: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])

4.27.3

2024-11-18

Bug Fixes

  • Revert object property tree-shaking for now (#5736)

Pull Requests

  • #5736: Revert object tree-shaking until some issues have been resolved (@lukastaegert)

4.27.2

2024-11-15

Bug Fixes

  • Ensure unused variables in patterns are always deconflicted if rendered (#5728)

Pull Requests

  • #5728: Fix more variable deconflicting issues (@lukastaegert)

4.27.1

2024-11-15

Bug Fixes

  • Fix some situations where parameter declarations could put Rollup into an infinite loop (#5727)

Pull Requests

  • #5727: Debug out-of-memory issues with Rollup v4.27.0 (@lukastaegert)

4.27.0

2024-11-15

Features

  • Tree-shake unused properties in object literals (#5420)

Bug Fixes

  • Change hash length limit to 21 to avoid inconsistent hash length (#5423)

Pull Requests

  • #5420: feat: implement object tree-shaking (@TrickyPi, @lukastaegert)
  • #5723: Reduce max hash size to 21 (@lukastaegert)
  • #5724: fix(deps): update swc monorepo (major) (@renovate[bot])
  • #5725: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])

4.26.0

2024-11-13

Features

  • Allow to avoid await bundle.close() via explicit resource management in TypeScript (#5721)

Pull Requests

  • #5721: feat: support using for RollupBuild (@shulaoda)

4.25.0

2024-11-09

Features

  • Add output.sourcemapDebugIds option to add matching debug ids to sourcemaps and code for tools like Sentry or Rollbar (#5712)

Bug Fixes

  • Make it easier to manually reproduce base16 hashes by using a more standard base16 conversion algorithm (#5719)

Pull Requests

  • #5712: feat: Add support for injecting Debug IDs (@timfish)
  • #5717: fix(deps): update swc monorepo (major) (@renovate[bot])
  • #5718: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5719: Use a less surprising base-16 encoding (@lukastaegert)

4.24.4

2024-11-04

Bug Fixes

  • Ensure mutations by handlers in Proxy definitions are always respected when tree-shaking (#5713)

Pull Requests

  • #5708: Update configuration-options document (@sacru2red, @lukastaegert)
  • #5711: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5713: fix: Deoptimize the proxied object if its property is reassigned in the handler functions (@TrickyPi)

4.24.3

2024-10-29

Bug Fixes

  • Slightly reduce memory consumption by specifying fixed array sizes where possible (#5703)

Pull Requests

  • #5703: perf: use pre-allocated arrays for known result sizes (@GalacticHypernova)

4.24.2

2024-10-27

Bug Fixes

  • Add missing build dependency (#5705)

Pull Requests

  • #5705: Fix "Couldn't find package" error when installing rollup using yarn (@tagattie)

4.24.1

2024-10-27

Bug Fixes

  • Support running Rollup natively on FreeBSD (#5698)

Pull Requests

  • #5689: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5690: chore(deps): update dependency @inquirer/prompts to v7 (@renovate[bot])
  • #5691: chore(deps): update dependency eslint-plugin-unicorn to v56 (@renovate[bot])
  • #5692: chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5695: fix(deps): update swc monorepo (major) (@renovate[bot])
  • #5696: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5698: Add support for FreeBSD (x64 and arm64) (@tagattie, @lukastaegert)

4.24.0

2024-10-02

Features

  • Support preserving and transpiling JSX syntax (#5668)

Pull Requests

  • #5668: Introduce JSX support (@lukastaegert, @Martin-Idel, @felixhuttmann, @AlexDroll, @tiptr)

4.23.0

2024-10-01

Features

  • Collect all emitted names and originalFileNames for assets (#5686)

Pull Requests

  • #5686: Add names and originalFileNames to assets (@lukastaegert)

4.22.5

2024-09-27

Bug Fixes

  • Allow parsing of certain unicode characters again (#5674)

Pull Requests

  • #5674: Fix panic with unicode characters (@sapphi-red, @lukastaegert)
  • #5675: chore(deps): update dependency rollup to v4.22.4 [security] (@renovate[bot])
  • #5680: chore(deps): update dependency @rollup/plugin-commonjs to v28 (@renovate[bot], @lukastaegert)
  • #5681: chore(deps): update dependency @rollup/plugin-replace to v6 (@renovate[bot])
  • #5682: chore(deps): update dependency @rollup/plugin-typescript to v12 (@renovate[bot])
  • #5684: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])

2.79.2

2024-09-26

Bug Fixes

  • Fix a vulnerability in generated code that affects IIFE, UMD and CJS bundles when run in a browser context (#5671)

Pull Requests

  • #5671: Fix DOM Clobbering CVE (@lukastaegert)

3.29.5

2024-09-21

Bug Fixes

  • Fix a vulnerability in generated code that affects IIFE, UMD and CJS bundles when run in a browser context (#5671)

Pull Requests

  • #5671: Fix DOM Clobbering CVE (@lukastaegert)

4.22.4

2024-09-21

Bug Fixes

  • Fix a vulnerability in generated code that affects IIFE, UMD and CJS bundles when run in a browser context (#5671)

Pull Requests

  • #5670: refactor: Use object.prototype to check for reserved properties (@YuHyeonWook)
  • #5671: Fix DOM Clobbering CVE (@lukastaegert)

4.22.3

2024-09-21

Bug Fixes

  • Ensure that mutations in modules without side effects are observed while properly handling transitive dependencies (#5669)

Pull Requests

  • #5669: Ensure impure dependencies of pure modules are added (@lukastaegert)

4.22.2

2024-09-20

Bug Fixes

  • Revert fix for side effect free modules until other issues are investigated (#5667)

Pull Requests

  • #5667: Partially revert #5658 and re-apply #5644 (@lukastaegert)

4.22.1

2024-09-20

Bug Fixes

  • Revert #5644 "stable chunk hashes" while issues are being investigated

Pull Requests

  • #5663: chore(deps): update dependency inquirer to v11 (@renovate[bot], @lukastaegert)
  • #5664: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5665: fix: type in CI file (@YuHyeonWook)
  • #5666: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])

4.22.0

2024-09-19

Features

  • Add additional known global values to avoid access side effects (#5651)

Bug Fixes

  • Ensure deterministic chunk hash generation despite async renderChunk hook (#5644)
  • Improve side effect detection when using "smallest" treeshaking preset when imports are optimized away (#5658)

Pull Requests

  • #5644: fix: apply final hashes deterministically with stable placeholders set (@mattkubej, @lukastaegert)
  • #5646: chore(deps): update dependency @mermaid-js/mermaid-cli to v11 (@renovate[bot])
  • #5647: chore(deps): update dependency concurrently to v9 (@renovate[bot])
  • #5648: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5651: feat: add AggregateError, FinalizationRegistry, WeakRef to knownGlobals (@re-taro)
  • #5653: Fix example selection in REPL (@lukastaegert)
  • #5657: chore(deps): update dependency vite to v5.4.6 [security] (@renovate[bot])
  • #5658: Detect variable reassignments in modules without side effects (@lukastaegert)

4.21.3

2024-09-12

Bug Fixes

  • Always respect side effects in left-hand side of optional chain (#5642)
  • Update stack trace for augmented errors to not hide relevant information (#5640)

Pull Requests

  • #5636: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5637: chore(deps): lock file maintenance (@renovate[bot])
  • #5640: fix: keep the message of stack up-to-date (@TrickyPi)
  • #5642: fix: include left-side effect of optional chaining in the end of hasEffectsAsChainElement (@TrickyPi)

4.21.2

2024-08-30

Bug Fixes

  • Handle IIFE/UMD namespace definitions conflicting with a builtin property (#5605)

Pull Requests

  • #5605: fix: Wrong namespace property definition (@thirumurugan-git, @lukastaegert)
  • #5630: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5631: chore(deps): lock file maintenance (@renovate[bot])
  • #5632: chore(deps): lock file maintenance (@renovate[bot])

4.21.1

2024-08-26

Bug Fixes

  • Ensure closeWatcher hook is called when watch mode is aborted via Ctrl+C (#5618)
  • Do not produce invalid code for import.meta.url in compact mode (#5624)
  • Do not throw when generating chunk names when preserving modules in Windows (#5625)

Pull Requests

  • #5591: chore(deps): update dependency @types/eslint to v9 (@renovate[bot], @lukastaegert)
  • #5618: preload the WASM file even though the version is undefined. (@TrickyPi)
  • #5619: Call and await closeWatcher hooks on exit signals (@lukastaegert)
  • #5622: chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5624: fix: add space for DOCUMENT_CURRENT_SCRIPT template (@TrickyPi)
  • #5625: fix: get the right chunk name for preserve modules in Windows (@TrickyPi, @lukastaegert)

4.21.0

2024-08-18

Features

  • Add option to configure directory for virtual modules when preserving modules (#5602)

Pull Requests

  • #5602: feat: introduce the virtualDirname option to customize the virtual directory name (@TrickyPi)
  • #5607: chore(deps): update typescript-eslint monorepo to v8 (major) (@renovate[bot], @lukastaegert)
  • #5608: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5611: chore: fix the noConflict option in REPL. (@7086cmd)
  • #5613: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5614: chore(deps): lock file maintenance (@renovate[bot])

4.20.0

2024-08-03

Features

  • Allow plugins to specify the original file name when emitting assets (#5596)

Pull Requests

  • #5596: Add originalFIleName property to emitted assets (@lukastaegert)
  • #5599: chore(deps): update dependency eslint-plugin-unicorn to v55 (@renovate[bot], @lukastaegert)
  • #5600: chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)

4.19.2

2024-08-01

Bug Fixes

  • Avoid "cannot get value of null" error when using optional chaining with namespaces (#5597)

Pull Requests

  • #5597: Fix retrieval of literal values for chained namespaces (@lukastaegert)

4.19.1

2024-07-27

Bug Fixes

  • Do not remove parantheses when tree-shaking logical expressions (#5584)
  • Do not ignore side effects in calls left of an optional chaining operator (#5589)

Pull Requests

  • #5584: fix: find whitespace from operator position to start (@TrickyPi)
  • #5587: docs: improve command by code-group (@thinkasany, @lukastaegert)
  • #5589: Fix side effect detection in optional chains (@lukastaegert)
  • #5592: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5593: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5594: chore(deps): lock file maintenance (@renovate[bot])
  • #5595: chore(deps): lock file maintenance (@renovate[bot])

4.19.0

2024-07-20

Features

  • Implement support for decorators (#5562)

Bug Fixes

  • Improve soucemap generation when tree-shaking logical expressions (#5581)

Pull Requests

  • #5562: feat: implementing decorator support (@TrickyPi, @lukastaegert)
  • #5570: refactor(finalisers): condition branch (@Simon-He95, @zhangmo8)
  • #5572: Improve chunk and asset type information in docs (@lukastaegert)
  • #5573: Switch to audit resolver to ignore requirejs vulnerability (@lukastaegert)
  • #5575: chore(deps): update dependency inquirer to v10 (@renovate[bot], @lukastaegert)
  • #5576: chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5580: chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5581: When tree-shaking logical expression, make sure to remove all trailing white-space. (@lukastaegert)

4.18.1

2024-07-08

Bug Fixes

  • Prevent "%" in generated file names to ensure imports resolve (#5535)

Pull Requests

  • #5524: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5525: chore(deps): lock file maintenance (@renovate[bot])
  • #5526: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5527: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5529: Use Spanned trait to simplify logic (@lukastaegert)
  • #5530: Fix typos in ARCHITECTURE.md (@younggglcy)
  • #5532: Use Rust macros for converters where possible (@lukastaegert)
  • #5535: fix: escape % if URI malformed (@baseballyama, @lukastaegert)
  • #5536: chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5541: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5542: chore(deps): lock file maintenance (@renovate[bot])
  • #5543: Watch rust files and rebuild during dev (@lukastaegert)
  • #5544: Refactor AST converters (@lukastaegert)
  • #5545: chore(deps): update dependency @rollup/plugin-commonjs to v26 (@renovate[bot])
  • #5546: chore(deps): update dependency nyc to v17 (@renovate[bot])
  • #5547: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5548: chore(deps): lock file maintenance (@renovate[bot])
  • #5549: chore(deps): lock file maintenance (@renovate[bot])
  • #5550: chore(deps): update dependency eslint-plugin-unicorn to v54 (@renovate[bot], @lukastaegert)
  • #5551: chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5555: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5556: chore(deps): lock file maintenance (@renovate[bot])
  • #5558: Consider that the body of ClassBody might be of type StaticBlock (@TrickyPi)
  • #5565: refactor(ast): conditional branch (@Simon-He95)
  • #5566: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5567: chore(deps): lock file maintenance (@renovate[bot])

4.18.0

2024-05-22

Features

  • Resolve import.meta.filename and .dirname in transpiled plugins (#5520)

Pull Requests

  • #5504: Auto generate node index (@lukastaegert)
  • #5507: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5508: chore(deps): lock file maintenance (@renovate[bot])
  • #5510: Split up converter.rs into AST nodes (@lukastaegert)
  • #5512: chore(deps): update dependency builtin-modules to v4 (@renovate[bot], @lukastaegert)
  • #5514: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5518: chore(deps): update dependency eslint-plugin-unicorn to v53 (@renovate[bot], @lukastaegert)
  • #5519: chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
  • #5520: Resolve import.meta.{filename,dirname} in files imported from config (@BPScott)
  • #5521: docs: correct base32 to base36 in documentation (@highcastlee)

4.17.2

2024-04-30

Bug Fixes

  • Fix tree-shaking problems when using spread arguments (#5503)

Pull Requests

  • #5501: Slightly improve perf report (@lukastaegert)
  • #5503: fix: rest element should deoptimize parameter values (@liuly0322)

4.17.1

2024-04-29

Bug Fixes

  • Prevent infinite recursions for certain constructor invocations (#5500)

Pull Requests

  • #5500: fix: parameter variable infinite recursion error (@liuly0322)

4.17.0

2024-04-27

Features

  • Track function call arguments to optimize functions only called once or with the same literal values (re-release from 4.16.0) (#5483)

Bug Fixes

  • Reduce browser WASM size to a fraction by changing optimization settings (#5494)

Pull Requests

  • #5483: feature(fix): function parameter tracking (@liuly0322)
  • #5488: Report performance in CI (@TrickyPi)
  • #5489: Create FUNDING.json (@BenJam)
  • #5492: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5493: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5494: Use opt-level=z for browser wasm (@sapphi-red)

4.16.4

2024-04-23

Bug Fixes

  • Revert function parameter tracking logic introduced in 4.16.0 to work on some remaining issues (#5487)

Pull Requests

  • #5487: Revert function parameter tracking logic for now (@lukastaegert)

4.16.3

2024-04-23

Bug Fixes

  • Do not optimize IIFEs that have a name and are again referenced inside their definition (#5486)

Pull Requests

  • #5486: fix: only optimize annoymous iife (@liuly0322)

4.16.2

2024-04-22

Bug Fixes

  • Resolve a situation condition where reassignments of function parameters were not tracked properly (#5482)
  • Make sure that for armv7 packages, only one package is downloaded for the user (musl or gnu) (#5479)

Pull Requests

  • #5479: Add libc field to armv7 packages (@sapphi-red)
  • #5482: fix: function parameter reassigned update (@liuly0322)

4.16.1

2024-04-21

Bug Fixes

  • Fix crash when rendering logical or conditional expressions (#5481)

Pull Requests

  • #5481: fix: conditional/logical expression should request a new tree-shaking (@liuly0322)

4.16.0

2024-04-21

Features

  • Track function call arguments to optimize functions only called once or with the same literal values (#5443)

Pull Requests

  • #5443: feat: improve tree-shaking by propagate const parameter (@liuly0322, @lukastaegert)

4.15.0

2024-04-20

Features

  • Add output.importAttributesKey option to select whether to use "with" or "assert" for import attributes (#5474)

Pull Requests

  • #5474: Add ImportAttributesKey to choose keyword ("with" | "assert") (@doubleaa93, @lukastaegert)
  • #5475: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5477: Try to run emulated smoke tests for Linux environments (@lukastaegert)

4.14.3

2024-04-15

Bug Fixes

  • Support Alpine Linux and other MUSL builds on ARM (#5471)

Pull Requests

  • #5471: Add linux arm musl build (@sapphi-red)

4.14.2

2024-04-12

Bug Fixes

  • Do not create invalid code when reexporting both a namespace and the default export from that namespace (#5466)
  • Ensure ppc64 platform is properly detected (#5460)

Pull Requests

  • #5456: Add high-level architecture documentation (@lukastaegert)
  • #5460: Fix ppc64le target (@lukastaegert)
  • #5463: chore: tweak the comment about files should not be edited (@TrickyPi)
  • #5466: Ensure reexported namespaces do not prevent creation of default export helpers (@lukastaegert)
  • #5468: chore(deps): update dependency eslint-plugin-unicorn to v52 (@renovate[bot], @lukastaegert)
  • #5469: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5470: chore(deps): lock file maintenance (@renovate[bot])

4.14.1

2024-04-07

Bug Fixes

  • Show better error when running on musl Linux where the musl build is not supported (#5454)

Pull Requests

  • #5451: chore: generate string constants from config (@TrickyPi)
  • #5452: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
  • #5453: chore(deps): lock file maintenance (@renovate[bot])
  • #5454: Improve error message when running on unsupported MUSL Linux (@lukastaegert)
  • #5455: Remove inlining logic in AST (de-)serializer (@lukastaegert)

4.14.0

2024-04-03

Features

  • Display error causes in Rollup CLI (#5422)
  • Add basic support for explicit resource management via "using" and "await using" (#5423)

Pull Requests

  • #5422: feat: show all cause in Error (@devohda, @lukastaegert)
  • #5444: feat: support explicit-resource-management (@TrickyPi)
  • #5445: docs: add @shikiji/vitepress-twoslash (@sapphi-red)
  • #5447: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5448: chore(deps): lock file maintenance (@renovate[bot])

4.13.2

2024-03-28

Bug Fixes

  • Ensure accessing module info is cached after the build phase for improved performance (#5438)
  • Support powerpc64le CPUs (#5350)

Pull Requests

  • #5350: Add support for ppc64le (@pavolloffay, @lukastaegert)
  • #5438: Cache module info getters before output generation (@bluwy, @lukastaegert)

4.13.1

2024-03-27

Bug Fixes

  • Add new linux-s390x-gnu native binary package (#5346)

Pull Requests

  • #5346: Add support for linux s390x gnu (@edlerd)
  • #5430: chore(deps): update dependency @vue/eslint-config-typescript to v13 (@renovate[bot], @lukastaegert)
  • #5431: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5432: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5436: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5437: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])

4.13.0

2024-03-12

Features

  • Ensure that the location of parse errors and other logs is encoded in the error message as well (#5424)

Pull Requests

  • #5417: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5418: chore(deps): lock file maintenance (@renovate[bot])
  • #5419: chore: fix typo (@OnlyWick)
  • #5424: Add locations to logs, warnings and error messages ( @lukastaegert)

4.12.1

2024-03-06

Bug Fixes

  • Escape special characters in file references (#5404)

Pull Requests

  • #5398: Rename getRollupEror to getRollupError (@MrRefactoring)
  • #5399: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5404: fix: escape ids in import.meta.ROLLUP_FILE_URL_referenceId correctly (@sapphi-red)
  • #5406: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5407: chore(deps): lock file maintenance (@renovate[bot])
  • #5411: Chunk assignment - Fix comment line breaks and typo (@yoavweiss, @lukastaegert)

4.12.0

2024-02-16

Features

  • Improve raw bundling performance by 10-15% when not using the cache or plugins that return an AST (#5391)

Pull Requests

  • #5391: Improve performance by directly constructing AST from buffer ( @lukastaegert)
  • #5393: chore(deps): update dependency eslint-plugin-unicorn to v51 ( @renovate[bot])
  • #5394: chore(deps): update typescript-eslint monorepo to v7 (major) ( @renovate[bot])
  • #5395: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])

4.11.0

2024-02-15

Features

  • Add output.reexportProtoFromExternal option to disable special code for handling __proto__ reexports (#5380)

Bug Fixes

  • Ensure namespace reexport code can be parsed by cjs-module-lexer (#5380)
  • Throw when trying to reassing const variables (#5388)

Pull Requests

  • #5380: fix: separately export __proto__ for compatibility with CJS Transpiler Re-exports (@TrickyPi)
  • #5388: Add const reassign rule (@TrickyPi)

4.10.0

2024-02-10

Features

  • Support base-36 and base-16 hashes again via new output.hashCharacters option (#5371)

Bug Fixes

  • Do not crash process for panics in native code but throw them as JavaScript errors (#5383)

Pull Requests

  • #5359: chore(deps): update actions/cache action to v4 (@renovate[bot])
  • #5360: chore(deps): update dependency pretty-ms to v9 (@renovate[bot])
  • #5366: chore(deps): update dependency husky to v9 (@renovate[bot])
  • #5367: chore(deps): update peter-evans/create-or-update-comment action to v4 (@renovate[bot])
  • #5368: chore(deps): update peter-evans/find-comment action to v3 ( @renovate[bot])
  • #5369: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5370: Fix dependency range for Node types (@lukastaegert)
  • #5371: Implement "output.hashCharacters" option to define character set for file hashes (@lukastaegert)
  • #5372: Roll back vitepress as 1.0.0-rc.40 breaks the development build ( @lukastaegert)
  • #5382: Update documentation (@TrickyPi)
  • #5383: Catch Rust panics and then throw them in JS (@TrickyPi)
  • #5384: chore(deps): update codecov/codecov-action action to v4 ( @renovate[bot])
  • #5385: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5386: Resolve all rollup imports to node_modules to avoid type conflict (@TrickyPi)

4.9.6

2024-01-21

Bug Fixes

  • Detect side effects when an element that was pushed into an array is modified via the array (#5352)

Pull Requests

  • #5337: Generate AST transformers from config (@lukastaegert)
  • #5340: Also type-check d.ts files (@lukastaegert)
  • #5348: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5351: chore(deps): update dependency vite to v5.0.12 [security] ( @renovate[bot])
  • #5352: Track mutations of elements pushed into arrays (@lukastaegert)

4.9.5

2024-01-12

Bug Fixes

  • Fix issue where on Windows, Rollup would not load due to problems with the MSVC executable (#5335)

Pull Requests

  • #5334: Fix typo in commondir.ts (@akiomik)
  • #5335: build: static link msvc runtime on Windows x64 platform ( @Brooooooklyn)
  • #5338: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])

4.9.4

2024-01-06

Bug Fixes

  • Use quotes for keys in namespaces that are only numbers but are not valid integers (#5328)
  • Allow to have comments between pure annotations and the annoted node (#5332)

Pull Requests

  • #5328: Correctly handling number key (@LongTengDao)
  • #5332: Handle pure annotations that are separated by a comment ( @lukastaegert)

4.9.3

2024-01-05

Bug Fixes

  • Support __proto__ as export/import name (#5313)
  • Use ESTree AST type over custom type in user-facing types (#5323)

Pull Requests

  • #5313: Correctly handling proto export as module object key ( @LongTengDao)
  • #5323: fix: Add estree.Program type to rollup.d.ts (@TrickyPi)
  • #5326: docs: fix grammar (@gigabites19)
  • #5329: chore(deps): update dependency @vue/eslint-config-prettier to v9 (@renovate[bot])
  • #5330: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])

4.9.2

2023-12-30

Bug Fixes

  • Extend support for arbitrary namespace identifiers in SystemJS (#5321)
  • Do not wrongly flag functions without side effects as side effects if moduleSideEffects is false (#5322)

Pull Requests

  • #5305: Add JSDoc types to internal scripts (@lukastaegert)
  • #5309: chore(deps): update actions/download-artifact action to v4 ( @renovate[bot])
  • #5311: chode: add node badge (@btea)
  • #5312: Remove rollup-plugin-thatworks from devDeps (@TrickyPi)
  • #5318: chore(deps): update dependency eslint-plugin-unicorn to v50 ( @renovate[bot])
  • #5319: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5321: Handle arbitrary namespace identifiers in some SystemJS scenarios (@lukastaegert)
  • #5322: Do not handle declarations in modules without side effects as TDZ (@lukastaegert)

4.9.1

2023-12-17

Bug Fixes

  • Fix an issue where break statements could include the wrong label (#5297)

Pull Requests

  • #5297: fix: use a new includedLabels in the body of the LabeledStatement (@TrickyPi)
  • #5300: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])

4.9.0

2023-12-13

Features

  • Fully support arbitrary strings as import and export identifiers (#5298)

Pull Requests

  • #5296: Do not assume setTimeout return type (@kapouer)
  • #5298: Fully support arbitrary module namespace identifiers for all formats (@lukastaegert)

4.8.0

2023-12-11

Features

  • Improve experimentalMinChunkSize to take already loaded modules from dynamic imports into account (#5294)

Pull Requests

  • #5294: Find more merge targets for experimentalMinChunkSize ( @lukastaegert)

4.7.0

2023-12-08

Features

  • Add build for Linux riscv64 architecture (#5288)

Bug Fixes

  • Improve error message when native Windows build does not start (#5284)

Pull Requests

  • #5278: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5281: Add logs and experimentalLogSideEffects to REPL (@lukastaegert)
  • #5284: Add friendly error for missing MSVC redistributable (@sapphi-red)
  • #5285: chore(deps): update dependency vite to v5.0.5 [security] ( @renovate[bot])
  • #5288: Add support for linux riscv64 gnu (@kxxt)
  • #5290: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])

4.6.1

2023-11-30

Bug Fixes

  • Resolve a situation where declaring the same var several times was considered a conflict (#5276)

Pull Requests

  • #5275: Add TNG as special sponsor (@lukastaegert)
  • #5276: Allow to redeclare parameters multiple times in nested scopes ( @lukastaegert)

4.6.0

2023-11-26

Features

  • Allow this.addWatchFile in all plugin hooks (#5270)

Bug Fixes

  • Show helpful error when native binaries are not installed due to an npm issue (#5267)
  • Do not access this context in this.addWatchFile so it does not need to be bound when passed around (#5270)

Pull Requests

  • #5267: Add friendly error for npm bug (@sapphi-red)
  • #5270: Allow this.addWatchFile in all hooks (@lukastaegert)
  • #5272: Debug deployed graphs (@lukastaegert)

4.5.2

2023-11-24

Bug Fixes

  • Handle files with UTF-8 BOM when using the commonjs plugin (#5268)

Pull Requests

  • #5268: fix: strip BOM before calling transform hook (@TrickyPi)
  • #5269: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])

4.5.1

2023-11-21

Bug Fixes

  • Do not error when a function expression uses the same name for a parameter and its id (#5262)

Pull Requests

  • #5257: Fix graphs in docs, improve REPL colors (@lukastaegert)
  • #5262: Allow function expression parameters to shadow the function id ( @lukastaegert)

4.5.0

2023-11-18

Bug Fixes

  • Show a proper error when using native Rollup on armv7 musl Linux (#5255)

Pull Requests

  • #5251: doc fix import assertions to attributes in API plugin development page (@lhapaipai)
  • #5253: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5255: Error for armv7 musl build (@lukastaegert)

4.4.1

2023-11-14

Bug Fixes

  • Do not flag duplicate function declarations in function scopes as syntax errors (#5248)

Pull Requests

  • #5248: Allow functions to redeclare vars and functions in function scopes (@lukastaegert)

4.4.0

2023-11-12

Features

  • Replace SWC linting with faster internal linting to error on duplicate declarations etc. (#5207)

Bug Fixes

  • Show proper error when an entry exports non-existing bindings (#5207)

Pull Requests

  • #5207: perf: run lint while constructing nodes (@sapphi-red)

4.3.1

2023-11-11

Bug Fixes

  • Fix rename error when handling errors in watch mode (#5240)
  • Prevent warning when using --forceExit (#5245)

Pull Requests

  • #5240: fix: allow the name of Rollup Error to be modified (@TrickyPi)
  • #5243: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5245: Ensure --forceExit works without warning (@lukastaegert)

4.3.0

2023-11-03

Features

  • Add forceExit CLI flag for situations where the CLI does not exit gracefully (#5195)

Bug Fixes

  • Properly catch errors when removing a temporary config file fails (#5198)

Pull Requests

  • #5195: Add forceExit CLI flag (@raphael-theriault-swi)
  • #5198: fix: prevent ENOENT error on temp config removal (@jzempel)
  • #5237: chore: remove unused files and deps (@TrickyPi)
  • #5238: chore(deps): update dependency eslint-plugin-unicorn to v49 ( @renovate[bot])
  • #5239: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])

4.2.0

2023-10-31

Features

  • Run parsing in multiple threads and introduce parseAstAsync helper function (#5202)

Pull Requests

  • #5202: perf: introduce parseAstAsync and parallelize parsing AST ( @sapphi-red)

4.1.6

2023-10-31

Bug Fixes

  • Fix a bug where emtpy block comments in certain positions could freeze Rollup (#5231)

Pull Requests

  • #5228: build: ensure rust toolchain components for linting are installed (@jerome-benoit)
  • #5231: Render emtpy block comments after tree-shaken statements ( @lukastaegert)
  • #5232: Revert specifying rustfmt and clippy in toolchain file as it breaks REPL build (@lukastaegert)

4.1.5

2023-10-28

Bug Fixes

  • Fix an issue where actual entries that were also implicit entries could remain implicit (#5220)

Pull Requests

  • #5209: Document Vite workaround for browser build (@curran)
  • #5215: chore(deps): update dependency lint-staged to v15 ( @renovate[bot])
  • #5216: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5218: Update license plugin (@lukastaegert)
  • #5219: Fix error highlight in REPL (@lukastaegert)
  • #5220: Fix race condition when emitting implicitly dependent entries ( @lukastaegert)
  • #5224: chore(deps): update actions/setup-node action to v4 ( @renovate[bot])
  • #5225: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])

4.1.4

2023-10-16

Bug Fixes

  • Reduce sizes @rollup/browser and @rollup/wasm-node WASM artifacts (#5204)

Pull Requests

  • #5204: perf: shrink wasm size by avoid importing browserslist ( @sapphi-red)

4.1.3

2023-10-15

Bug Fixes

  • Fix WASM build as hash function was not exported (#5203)

Pull Requests

  • #5203: fix: export xxhashBase64Url from wasm (@sapphi-red)

4.1.2

2023-10-15

Release did not finish successfully

4.1.1

2023-10-15

Bug Fixes

  • Improve Node parsing performance (#5201)

Pull Requests

  • #5201: perf: use mimalloc for bindings_napi (@sapphi-red)

4.1.0

2023-10-14

Features

  • Reduce memory usage of Rollup builds (#5133)

Pull Requests

  • #5133: perf: reducing ast node memory overhead (@thebanjomatic)
  • #5177: chore: explicitly set rust toolchain channel (@cijiugechu)
  • #5179: Update migration guide for Rollup 4 (@lukastaegert)
  • #5180: Resolve clippy errors (@cijiugechu)
  • #5183: Add clippy to pipeline and fix remaining issues (@lukastaegert)
  • #5184: docs: fix code example for onLog (@tjenkinson)
  • #5186: Improve wording for native artifacts in migration guide ( @lukastaegert)
  • #5190: test: add verifyAst type (@TrickyPi)
  • #5196: chore(deps): update dependency rollup to v4 (@renovate[bot])
  • #5197: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])

4.0.2

2023-10-06

Bug Fixes

  • Fix annotation detection logic to not fail when a non-ASCII character precedes a double underscore (#5178)

Pull Requests

  • #5178: Handle special characters before double underscores ( @lukastaegert)

4.0.1

2023-10-06

Bug Fixes

  • Do not panic on trailing semicolons after class methods (#5173)
  • Add artifact for arm64 linux musl target (#5176)

Pull Requests

  • #5172: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5173: fix: ignores empty statements in class body that is returned by SWC parser (@TrickyPi)
  • #5176: Fix linux arm musl build (@lukastaegert)

4.0.0

2023-10-05

BREAKING CHANGES

General Changes

  • The minimal required Node version is now 18.0.0 (#5142)
  • The browser build now relies on a WASM artifact that needs to be provided as well (#5073)
  • The NodeJS build now relies on an optional native binary; for unsupported platforms, users can use the @rollup/wasm-node package that has the same interface as Rollup but relies on WASM artifacts (#5073)
  • The INVALID_IMPORT_ASSERTION error code has been replaced with INVALID_IMPORT_ATTRIBUTE (#5073)
  • Rollup will now warn for @__PURE__ and @__NO_SIDE_EFFECTS__ annotations in invalid locations (#5165)
  • If an entry module starts with a shebang comment #!..., this comment will be prepended to the output for es and cjs formats (#5163)
  • File hashes will now use url-safe base64 encoded hashes (#5155)
  • The maximum hash length has been reduced to 22 characters (#5155)
  • The RollupWarning type has been removed in favor of the RollupLog type (#5147)

Changes to Rollup Options

  • Acorn plugins are no longer supported, the acornInjectPlugins option has been removed (#5073)
  • The acorn option has been removed (#5073)
  • output.externalImportAssertions has been deprecated in favor of output.externalImportAttributes (#5073)
  • inlineDynamicImports, manualChunks and preserveModules have been removed on input option level: Please use the corresponding output options of the same names (#5143)
  • Removed output options (#5143):
    • output.experimentalDeepDynamicChunkOptimization: This option is no longer needed as Rollup now always runs the full chunking algorithm
    • output.dynamicImportFunction: Use the renderDynamicImport plugin hook instead
    • output.namespaceToStringTag: Use output.generatedCode.symbols instead
    • output.preferConst: Use output.generatedCode.constBindings instead

Plugin API Changes

  • For this.resolve, the default of the skipSelf option is now true (#5142)
  • this.parse now only supports the allowReturnOutsideFunction option for now (#5073)
  • Import assertions now use the new import attribute AST structure ( #5073)
  • "assertions" have been replaced with "attributes" in various places of the plugin interface (#5073)
  • If the import of a module id is handled by the load hook of a plugin, rollup.watch no longer watches the actual file if the module id corresponds to a real path; if this is intended, then the plugin is responsible for calling this.addWatchFile for any dependency files (#5150)
  • The normalized input options provided by buildStart and other hooks no longer contain an onwarn handler; plugins should use onLog instead (#5147)
  • this.moduleIds has been removed from the plugin context: Use this.getModuleIds() instead (#5143)
  • The hasModuleSideEffects flag has been removed from the ModuleInfo returned by this.getModuleInfo(): Use moduleSideEffects on the ModuleInfo instead (#5143)

Features

  • Improve parsing speed by switching to a native SWC-based parser (#5073)
  • Rollup will now warn for @__PURE__ and @__NO_SIDE_EFFECTS__ annotations in invalid locations (#5165)
  • The parser is now exposed as a separate export parseAst (#5169)

Bug Fixes

  • Rollup no longer tries to watch virtual files if their name corresponds to an actual file name; instead, plugins handle watching via this.addWatchFile() (#5150)

Pull Requests

  • #5073: [v4.0] Switch parser to SWC and introduce native/WASM code ( @lukastaegert)
  • #5142: [v4.0] Set the default of skipSelf to true (@TrickyPi)
  • #5143: [v4.0] Remove deprecated features (@lukastaegert)
  • #5144: [v4.0] Imporve the performance of generating ast and rollup ast nodes (@TrickyPi)
  • #5147: [v4.0] Remove onwarn from normalized input options ( @lukastaegert)
  • #5150: [v4.0] feat: Do not watch files anymore if their content is returned by the load hook (@TrickyPi)
  • #5154: [v4.0] Add parse option to allow return outside function ( @lukastaegert)
  • #5155: [v4.0] feat: implement hashing content in Rust (@TrickyPi)
  • #5157: [v4.0] Handle empty exports (@lukastaegert)
  • #5160: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
  • #5163: [v4.0] feat: preserve shebang in entry module for CJS and ESM outputs (@TrickyPi)
  • #5164: [v4.0] fix: also strip BOM from code strings in JS (@TrickyPi)
  • #5165: [v4.0] warn for invalid annotations (@lukastaegert)
  • #5168: [v4.0] Ensure we support new import attribute "with" syntax ( @lukastaegert)
  • #5169: [v4.0] Expose parser (@lukastaegert)

For previous changelogs, see