chore(deps): update dependency rollup to v4 - autoclosed
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
rollup (source) | resolutions | major | ^2.79.2 -> ^4.0.0 |
⚠ ️ WarningSome dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
rollup/rollup (rollup)
v4.28.1
2024-12-06
Bug Fixes
- Support running Rollup natively on LoongArch (#5749)
- Add optional
debugId
toSourceMap
types (#5751)
Merge Requests
- #5749: feat: add support for LoongArch (@darkyzhou)
-
#5751: feat: Add
debugId
toSourceMap
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)
v4.28.0
2024-11-30
Features
- Allow to specify how to handle import attributes when transpiling Rollup config files (#5743)
Merge 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])
v4.27.4
2024-11-23
Bug Fixes
- Update bundled magic-string to support sourcemap debug ids (#5740)
Merge Requests
- #5740: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
v4.27.3
2024-11-18
Bug Fixes
- Revert object property tree-shaking for now (#5736)
Merge Requests
- #5736: Revert object tree-shaking until some issues have been resolved (@lukastaegert)
v4.27.2
2024-11-15
Bug Fixes
- Ensure unused variables in patterns are always deconflicted if rendered (#5728)
Merge Requests
- #5728: Fix more variable deconflicting issues (@lukastaegert)
v4.27.1
2024-11-15
Bug Fixes
- Fix some situations where parameter declarations could put Rollup into an infinite loop (#5727)
Merge Requests
- #5727: Debug out-of-memory issues with Rollup v4.27.0 (@lukastaegert)
v4.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)
Merge 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])
v4.26.0
2024-11-13
Features
- Allow to avoid
await bundle.close()
via explicit resource management in TypeScript (#5721)
Merge Requests
-
#5721: feat: support
using
forRollupBuild
(@shulaoda)
v4.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)
Merge 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)
v4.24.4
2024-11-04
Bug Fixes
- Ensure mutations by handlers in Proxy definitions are always respected when tree-shaking (#5713)
Merge 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)
v4.24.3
2024-10-29
Bug Fixes
- Slightly reduce memory consumption by specifying fixed array sizes where possible (#5703)
Merge Requests
- #5703: perf: use pre-allocated arrays for known result sizes (@GalacticHypernova)
v4.24.2
2024-10-27
Bug Fixes
- Add missing build dependency (#5705)
Merge Requests
- #5705: Fix "Couldn't find package" error when installing rollup using yarn (@tagattie)
v4.24.1
2024-10-27
Bug Fixes
- Support running Rollup natively on FreeBSD (#5698)
Merge 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)
v4.24.0
2024-10-02
Features
- Support preserving and transpiling JSX syntax (#5668)
Merge Requests
- #5668: Introduce JSX support (@lukastaegert, @Martin-Idel, @felixhuttmann, @AlexDroll, @tiptr)
v4.23.0
2024-10-01
Features
- Collect all emitted names and originalFileNames for assets (#5686)
Merge Requests
- #5686: Add names and originalFileNames to assets (@lukastaegert)
v4.22.5
2024-09-27
Bug Fixes
- Allow parsing of certain unicode characters again (#5674)
Merge 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])
v4.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)
Merge Requests
- #5670: refactor: Use object.prototype to check for reserved properties (@YuHyeonWook)
- #5671: Fix DOM Clobbering CVE (@lukastaegert)
v4.22.3
2024-09-21
Bug Fixes
- Ensure that mutations in modules without side effects are observed while properly handling transitive dependencies (#5669)
Merge Requests
- #5669: Ensure impure dependencies of pure modules are added (@lukastaegert)
v4.22.2
2024-09-20
Bug Fixes
- Revert fix for side effect free modules until other issues are investigated (#5667)
Merge Requests
- #5667: Partially revert #5658 and re-apply #5644 (@lukastaegert)
v4.22.1
2024-09-20
Bug Fixes
- Revert #5644 "stable chunk hashes" while issues are being investigated
Merge 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])
v4.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)
Merge 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)
v4.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)
Merge 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)
v4.21.2
2024-08-30
Bug Fixes
- Handle IIFE/UMD namespace definitions conflicting with a builtin property (#5605)
Merge 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])
v4.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)
Merge 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)
v4.21.0
2024-08-18
Features
- Add option to configure directory for virtual modules when preserving modules (#5602)
Merge 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])
v4.20.0
2024-08-03
Features
- Allow plugins to specify the original file name when emitting assets (#5596)
Merge 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)
v4.19.2
2024-08-01
Bug Fixes
- Avoid "cannot get value of null" error when using optional chaining with namespaces (#5597)
Merge Requests
- #5597: Fix retrieval of literal values for chained namespaces (@lukastaegert)
v4.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)
Merge 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])
v4.19.0
2024-07-20
Features
- Implement support for decorators (#5562)
Bug Fixes
- Improve soucemap generation when tree-shaking logical expressions (#5581)
Merge 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)
v4.18.1
2024-07-08
Bug Fixes
- Prevent "%" in generated file names to ensure imports resolve (#5535)
Merge 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])
v4.18.0
2024-05-22
Features
- Resolve import.meta.filename and .dirname in transpiled plugins (#5520)
Merge 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)
v4.17.2
2024-04-30
Bug Fixes
- Fix tree-shaking problems when using spread arguments (#5503)
Merge Requests
- #5501: Slightly improve perf report (@lukastaegert)
- #5503: fix: rest element should deoptimize parameter values (@liuly0322)
v4.17.1
2024-04-29
Bug Fixes
- Prevent infinite recursions for certain constructor invocations (#5500)
Merge Requests
- #5500: fix: parameter variable infinite recursion error (@liuly0322)
v4.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)
Merge 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)
v4.16.4
2024-04-23
Bug Fixes
- Revert function parameter tracking logic introduced in 4.16.0 to work on some remaining issues (#5487)
Merge Requests
- #5487: Revert function parameter tracking logic for now (@lukastaegert)
v4.16.3
2024-04-23
Bug Fixes
- Do not optimize IIFEs that have a name and are again referenced inside their definition (#5486)
Merge Requests
- #5486: fix: only optimize annoymous iife (@liuly0322)
v4.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)
Merge Requests
- #5479: Add libc field to armv7 packages (@sapphi-red)
- #5482: fix: function parameter reassigned update (@liuly0322)
v4.16.1
2024-04-21
Bug Fixes
- Fix crash when rendering logical or conditional expressions (#5481)
Merge Requests
- #5481: fix: conditional/logical expression should request a new tree-shaking (@liuly0322)
v4.16.0
2024-04-21
Features
- Track function call arguments to optimize functions only called once or with the same literal values (#5443)
Merge Requests
- #5443: feat: improve tree-shaking by propagate const parameter (@liuly0322, @lukastaegert)
v4.15.0
2024-04-20
Features
- Add output.importAttributesKey option to select whether to use "with" or "assert" for import attributes (#5474)
Merge 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)
v4.14.3
2024-04-15
Bug Fixes
- Support Alpine Linux and other MUSL builds on ARM (#5471)
Merge Requests
- #5471: Add linux arm musl build (@sapphi-red)
v4.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)
Merge 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])
v4.14.1
2024-04-07
Bug Fixes
- Show better error when running on musl Linux where the musl build is not supported (#5454)
Merge 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)
v4.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)
Merge 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])
v4.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)
Merge Requests
- #5350: Add support for ppc64le (@pavolloffay, @lukastaegert)
- #5438: Cache module info getters before output generation (@bluwy, @lukastaegert)
v4.13.1
2024-03-27
Bug Fixes
- Add new linux-s390x-gnu native binary package (#5346)
Merge 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])
v4.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)
Merge 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)
v4.12.1
2024-03-06
Bug Fixes
- Escape special characters in file references (#5404)
Merge Requests
-
#5398: Rename
getRollupEror
togetRollupError
(@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)
v4.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)
Merge 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])
v4.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)
Merge Requests
-
#5380: fix: separately export
__proto__
for compatibility with CJS Transpiler Re-exports (@TrickyPi) - #5388: Add const reassign rule (@TrickyPi)
v4.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)
Merge 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)
v4.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)
Merge 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)
v4.9.5
2024-01-12
Bug Fixes
- Fix issue where on Windows, Rollup would not load due to problems with the MSVC executable (#5335)
Merge 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])
v4.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)
Merge Requests
- #5328: Correctly handling number key (@LongTengDao)
- #5332: Handle pure annotations that are separated by a comment ( @lukastaegert)
v4.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)
Merge 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])
v4.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)
Merge 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)
v4.9.1
2023-12-17
Bug Fixes
- Fix an issue where break statements could include the wrong label (#5297)
Merge 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])
v4.9.0
2023-12-13
Features
- Fully support arbitrary strings as import and export identifiers (#5298)
Merge Requests
- #5296: Do not assume setTimeout return type (@kapouer)
- #5298: Fully support arbitrary module namespace identifiers for all formats (@lukastaegert)
v4.8.0
2023-12-11
Features
- Improve
experimentalMinChunkSize
to take already loaded modules from dynamic imports into account (#5294)
Merge Requests
- #5294: Find more merge targets for experimentalMinChunkSize ( @lukastaegert)
v4.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)
Merge 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])
v4.6.1
2023-11-30
Bug Fixes
- Resolve a situation where declaring the same
var
several times was considered a conflict (#5276)
Merge Requests
- #5275: Add TNG as special sponsor (@lukastaegert)
- #5276: Allow to redeclare parameters multiple times in nested scopes ( @lukastaegert)
v4.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 inthis.addWatchFile
so it does not need to be bound when passed around (#5270)
Merge Requests
- #5267: Add friendly error for npm bug (@sapphi-red)
- #5270: Allow this.addWatchFile in all hooks (@lukastaegert)
- #5272: Debug deployed graphs (@lukastaegert)
v4.5.2
2023-11-24
Bug Fixes
- Handle files with UTF-8 BOM when using the commonjs plugin (#5268)
Merge Requests
- #5268: fix: strip BOM before calling transform hook (@TrickyPi)
- #5269: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
v4.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)
Merge Requests
- #5257: Fix graphs in docs, improve REPL colors (@lukastaegert)
- #5262: Allow function expression parameters to shadow the function id ( @lukastaegert)
v4.5.0
2023-11-18
Bug Fixes
- Show a proper error when using native Rollup on armv7 musl Linux (#5255)
Merge 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)
v4.4.1
2023-11-14
Bug Fixes
- Do not flag duplicate function declarations in function scopes as syntax errors (#5248)
Merge Requests
- #5248: Allow functions to redeclare vars and functions in function scopes (@lukastaegert)
v4.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)
Merge Requests
- #5207: perf: run lint while constructing nodes (@sapphi-red)
v4.3.1
2023-11-11
Bug Fixes
- Fix rename error when handling errors in watch mode (#5240)
- Prevent warning when using
--forceExit
(#5245)
Merge 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)
v4.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)
Merge 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])
v4.2.0
2023-10-31
Features
- Run parsing in multiple threads and introduce
parseAstAsync
helper function (#5202)
Merge Requests
-
#5202: perf: introduce
parseAstAsync
and parallelize parsing AST ( @sapphi-red)
v4.1.6
2023-10-31
Bug Fixes
- Fix a bug where emtpy block comments in certain positions could freeze Rollup (#5231)
Merge 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)
v4.1.5
2023-10-28
Bug Fixes
- Fix an issue where actual entries that were also implicit entries could remain implicit (#5220)
Merge 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])
v4.1.4
2023-10-16
Bug Fixes
- Reduce sizes @rollup/browser and @rollup/wasm-node WASM artifacts (#5204)
Merge Requests
- #5204: perf: shrink wasm size by avoid importing browserslist ( @sapphi-red)
v4.1.3
2023-10-15
Bug Fixes
- Fix WASM build as hash function was not exported (#5203)
Merge Requests
- #5203: fix: export xxhashBase64Url from wasm (@sapphi-red)
v4.1.1
2023-10-15
Bug Fixes
- Improve Node parsing performance (#5201)
Merge Requests
- #5201: perf: use mimalloc for bindings_napi (@sapphi-red)
v4.1.0
2023-10-14
Features
- Reduce memory usage of Rollup builds (#5133)
Merge 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])
v4.0.2
2023-10-06
Bug Fixes
- Fix annotation detection logic to not fail when a non-ASCII character precedes a double underscore (#5178)
Merge Requests
- #5178: Handle special characters before double underscores ( @lukastaegert)
v4.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)
Merge 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)
v4.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 withINVALID_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 fores
andcjs
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 theRollupLog
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 ofoutput.externalImportAttributes
(#5073) -
inlineDynamicImports
,manualChunks
andpreserveModules
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 therenderDynamicImport
plugin hook instead -
output.namespaceToStringTag
: Useoutput.generatedCode.symbols
instead -
output.preferConst
: Useoutput.generatedCode.constBindings
instead
-
Plugin API Changes
- For
this.resolve
, the default of theskipSelf
option is nowtrue
(#5142) -
this.parse
now only supports theallowReturnOutsideFunction
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 callingthis.addWatchFile
for any dependency files (#5150) - The normalized input options provided by
buildStart
and other hooks no longer contain anonwarn
handler; plugins should useonLog
instead (#5147) -
this.moduleIds
has been removed from the plugin context: Usethis.getModuleIds()
instead (#5143) - The
hasModuleSideEffects
flag has been removed from theModuleInfo
returned bythis.getModuleInfo()
: UsemoduleSideEffects
on theModuleInfo
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)
Merge 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)
v3.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)
Merge Requests
- #5671: Fix DOM Clobbering CVE (@lukastaegert)
v3.29.4
2023-09-28
Bug Fixes
- Fix static analysis when an exported function uses callbacks (#5158)
Merge Requests
- #5158: Deoptimize all parameters when losing track of a function ( @lukastaegert)
v3.29.3
2023-09-24
Bug Fixes
- Fix a bug where code was wrongly tree-shaken after mutating function parameters (#5153)
Merge Requests
- #5145: docs: improve the docs repl appearance in the light mode ( @TrickyPi)
- #5148: chore(deps): update dependency @vue/eslint-config-typescript to v12 (@renovate[bot])
- #5149: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
- #5153: Fully deoptimize first level path when deoptimizing nested parameter paths (@lukastaegert)
v3.29.2
2023-09-15
Bug Fixes
- Export
TreeshakingPreset
type (#5131)
Merge Requests
-
#5131: fix: exports
TreeshakingPreset
(@moltar) - #5134: docs: steps to enable symlinks on windows (@thebanjomatic)
- #5137: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
v3.29.1
2023-09-10
Bug Fixes
- Fix time measurement of plugin hooks in watch mode (#5114)
- Ensure accessing document.currentScript in import.meta.url returns correct results (#5118)
Merge Requests
- #5114: fix(perf): avoid superfluous timer wrappings in watch mode ( @ZhengLiu2825)
- #5118: fix: access document.currentScript at the top level (@TrickyPi)
- #5125: chore(deps): update actions/checkout action to v4 ( @renovate[bot])
- #5126: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
- #5129: re-enbale repl-artefacts workflow for rollup-swc branch ( @TrickyPi)
v3.29.0
2023-09-06
Features
- Add output.sourcemapFileNames option (#5105)
- Add generic type parameter for
api
to Plugin type (#5112)
Bug Fixes
- Ensure mutations of CustomEvent details are tracked (#5123)
Merge Requests
- #5105: Added option to name sourcemap files, i.e. a output.sourcemapFileName… (@atti187)
- #5108: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
- #5109: Docs: load full path of rollup.browser.js for Rollup V4 ( @TrickyPi)
- #5112: feat(types): add generic type for plugin api (@sxzz)
- #5115: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
- #5123: Deoptimize custom event detail (@lukastaegert)
v3.28.1
2023-08-22
Bug Fixes
- Ensure external files with relative import paths outside the target are rendered correctly (#5099)
Merge Requests
- #5093: chore(deps): update dependency eslint-config-prettier to v9 ( @renovate[bot])
- #5094: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
- #5099: Fix resolution of relative external files outside target directory (@lukastaegert)
- #5101: chore(deps): update dependency lint-staged to v14 ( @renovate[bot])
- #5102: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
v3.28.0
2023-08-09
Features
- Add a new property
preliminaryFileName
to generated chunks containing the file name placeholder (#5086) - Improve performance of sourcemap generation by lazily decoding mappings (#5087)
Bug Fixes
- Make the
code
property of rendered modules in the output readonly (#5091)
Merge Requests
-
#5086: feat: add
preliminaryFileName
toOutputChunk
(@lsdsjy) - #5087: perf(sourcemaps): add back lazy sourcemap decode and handling nullish mappings (@thebanjomatic)
- #5091: fix: the type of RenderedModule.code is readonly (@TrickyPi)
v3.27.2
2023-08-04
Bug Fixes
- Revert sourcemap performance improvement for now as it causes issues with Vite (#5075)
Merge Requests
- #5075: Revert perf(sourcemap): lazy compute decoded mappings ( @thebanjomatic)
v3.27.1
2023-08-03
Bug Fixes
- Improve performance when generating sourcemaps (#5075)
Merge Requests
- #5075: perf(sourcemap): lazy compute decoded mappings (@thebanjomatic)
v3.27.0
2023-07-28
Features
- Mark
Object.values
andObject.entries
as pure if their argument does not contain getters (#5072)
Merge Requests
- #5070: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
- #5071: docs(tutorial): change the .js extension to .mjs (@TrickyPi)
- #5072: Add known globals (@sapphi-red)
- #5078: chore(deps): update dependency @vue/eslint-config-prettier to v8 (@renovate[bot])
- #5079: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
v3.26.3
2023-07-17
Bug Fixes
- Do not pass external modules to
manualChunks
to avoid breaking existing configs (#5068)
Merge Requests
- #5056: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
- #5059: chore(config): migrate renovate config (@renovate[bot])
- #5064: chore(deps): update dependency prettier to v3 (@renovate[bot])
- #5065: chore(deps): update typescript-eslint monorepo to v6 (major) ( @renovate[bot])
- #5068: fix: don't pass external modules to the manualChunks function ( @TrickyPi)
v3.26.2
2023-07-06
Bug Fixes
- Improve error handling when manual chunks would contain external modules (#5050)
Merge Requests
- #5050: fix: improve error for manualChunks' modules that are resolved as an external module (@TrickyPi)
v3.26.1
2023-07-05
Bug Fixes
- Support
hasOwnProperty
as exported name in CommonJS (#5010) - Properly reference browser types in package file (#5051)
Merge Requests
- #5010: safe hasOwnProperty call (@LongTengDao)
- #5051: @rollup/browser: fix types export map entry (@developit)
v3.26.0
2023-06-30
Features
- Add
--filterLogs
CLI flag andROLLUP_FILTER_LOGS
environment variable for log filtering (#5035)
Merge Requests
- #5035: Add ability to filter logs via CLI option or environment variable (@lukastaegert)
- #5049: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
v3.25.3
2023-06-26
Bug Fixes
- Fix error when inlining dynamic imports that contain unused reexported variables (#5047)
Merge Requests
- #5047: Do not add tree-shaken variables to namespaces when inlining dynamic imports (@lukastaegert)
v3.25.2
2023-06-24
Bug Fixes
- Handle plugin errors where
code
is not a string (#5042) - Use current transformed source when generating code frames with positions in transform hooks (#5045)
Merge Requests
- #5038: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
- #5040: Fix typo in index.md (@vHeemstra)
- #5042: fix: a plugin error can contains numeric code (@TrickyPi)
-
#5045: Fix
this.error
withpos
intransform
hook (@sapphi-red) - #5046: chore(deps): update dependency locate-character to v3 ( @renovate[bot])
v3.25.1
2023-06-12
Bug Fixes
- Respect
__NO_SIDE_EFFECTS__
for async functions (#5031)
Merge Requests
v3.25.0
2023-06-11
Features
- Add
this.info
andthis.debug
plugin context logging functions (#5026) - Add
onLog
option to read, map and filter logs (#5026) - Add
logLevel
option to fully suppress logs by level (#5026) - Support function logs in
this.warn
,this.info
andthis.debug
to avoid heavy computations based on log level ( #5026) - Add
onLog
plugin hook to read, filter and map logs from plugins (#5026)
Merge Requests
- #5026: Add Logging API (@lukastaegert)
v3.24.1
2023-06-10
Bug Fixes
- Fix an issue where bundles with
@rollup/plugin-commonjs
were missing internal dependencies when code-splitting ( #5029) - Do not use
process.exit(0)
in watch mode to avoid issues in embedded scenarios (#5027)
Merge Requests
- #5027: fix turborepo with rollup --watch (@plumber-dhaval)
- #5028: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
- #5029: fix: get right sideEffectModules (@TrickyPi)
v3.24.0
2023-06-07
Features
- Add new annotation
/* #__NO_SIDE_EFFECTS__ */
to mark function declarations as side effect free (#5024)
Merge Requests
v3.23.1
2023-06-04
Bug Fixes
- Ensure the last segment of sourcemapBaseUrl is never omitted (#5022)
Merge Requests
- #5006: Better workflow caching (@lukastaegert)
- #5012: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
- #5022: fix: add a trailing slash automatically for sourcemapBaseUrl ( @TrickyPi)
- #5023: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
v3.23.0
2023-05-22
Features
- Support emitting "prebuilt chunks" from plugins (#4990)
Bug Fixes
- Mark Sets and Maps as pure when they receive an array literal as argument (#5005)
Merge Requests
- #4990: feat: this.emitFile support prebuilt-chunk type (@TrickyPi)
- #5005: feat: mark Set, Map, WeakSet and WeakMap with array arguments as pure (@TrickyPi)
v3.22.1
2023-05-21
Bug Fixes
- Remove force quit again as it caused some issues (#5004)
Merge Requests
- #5001: chore(deps): update dependency @rollup/plugin-commonjs to v25 ( @renovate[bot])
- #5002: chore(deps): update dependency eslint-plugin-unicorn to v47 ( @renovate[bot])
- #5003: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
- #5004: Do not force quit Rollup or close stdout (@lukastaegert)
v3.22.0
2023-05-17
Features
- Prevent empty non-facade chunks by merging them into other suitable chunks (#4989)
- Avoid facade chunks in some situations involving reexports (#4989)
- Improve algorithm for best merge target when using
experimentalMinChunkSize
to take tree-shaking into account ( #4989)
Bug Fixes
- Take side effects of external dependencies into account when merging chunks for
experimentalMinChunkSize
(#4989)
Merge Requests
- #4989: Prevent empty chunks and thoroughly improve experimentalMinChunkSize (@lukastaegert)
v3.21.8
2023-05-16
Bug Fixes
- Allow a namespace to properly contain itself as a named export (#4991)
Merge Requests
- #4991: Handle self-referencing namespaces (@lukastaegert)
v3.21.7
2023-05-13
Bug Fixes
- Show correct error on uncaught exceptions in watch mode (#4987)
Merge Requests
- #4987: Properly quit on uncaught exceptions (@lukastaegert)
- #4988: test: add options type for function tests (@TrickyPi)
v3.21.6
2023-05-09
Bug Fixes
- Ensure Rollup CLI prints everything to stdout before exiting (#4980)
Merge Requests
- #4980: chore(deps): lock file maintenance minor/patch updates ( @renovate[bot])
- #4983: Prevent exit before stdout is drained (@lukastaegert)
v3.21.5
2023-05-05
Bug Fixes
- Keep all consecutive lines at the top of each module that start with a comment (#4975)
- Ensure that declarations inside switch cases do not use the same scope as the discriminator (#4979)
Merge Requests
- #4975: Keep leading comments on consecutive lines (@lukastaegert)
- #4979: Use correct scope in switch statements (@lukastaegert)
v3.21.4
2023-05-03
Bug Fixes
- Resolve crash when shimming a missing export in an otherwise non-included module when preserving modules (#4971)
Merge Requests
- #4971: Handle shimming missing exports when preserving modules ( @lukastaegert)
- #4972: Configure Renovate (@renovate[bot])
v3.21.3
2023-05-02
Bug Fixes
- Run
process.exit()
when Rollup CLI finishes successfully to solve issues on some systems (#4969)
Merge Requests
- #4954: test: enable typecheck for _config files (@antfu)
- #4969: Automatically force close Rollup when done (@lukastaegert)
v3.21.2
2023-04-30
Bug Fixes
- Mark global functions that trigger iterators as impure for now (#4955)
Merge Requests
- #4955: fix: mark some known globals or their functions as impure ( @TrickyPi)
v3.21.1
2023-04-29
Bug Fixes
- Make sure call arguments are properly deoptimized when a function uses the
arguments
variable (#4965)
Merge Requests
- #4957: Update dependencies (@lukastaegert)
- #4964: Fix REPL in dev (@lukastaegert)
- #4965: Ensure arguments are deoptimized when arguments variable is used (@lukastaegert)
- #4967: Log REPL output to console (@lukastaegert)
v3.21.0
2023-04-23
Features
- Support tree-shaking of named exports in dynamic imports when using destructuring and similar patterns (#4952)
Merge Requests
v3.20.7
2023-04-21
Bug Fixes
- Properly track array element mutations when iterating with a for-of loop (#4949)
- Handle default exporting an anonymous class that extends another class (#4950)
Merge Requests
- #4943: Add a test for reserved keywords used as import/export specifiers (@Andarist)
- #4949: Deoptimize right side in for-of loops (@lukastaegert)
- #4950: Support default exported classes that extend other classes ( @lukastaegert)
v3.20.6
2023-04-18
Bug Fixes
- Revert handling of non-JS import and export names due to regressions (#4914)
Merge Requests
- #4914: feat: add locales in vitepress config (@iDestin)
- #4946: Revert #4939 for now (@lukastaegert)
v3.20.5
2023-04-18
Bug Fixes
- Handle import and export names that are not valid JavaScript identifiers (#4939)
Merge Requests
- #4939: Fixed imports/exports that are illegal identifiers in the es output (@Andarist)
- #4941: Reinstate global styles (@lukastaegert)
v3.20.4
2023-04-17
Bug Fixes
- Do not remove breaks statements after switch statements with conditional breaks (#4937)
Merge Requests
- #4937: fix: handle conditional breaks in nested switch statement cases ( @TrickyPi and @lukastaegert)
v3.20.3
2023-04-16
Bug Fixes
- Reduce memory consumption for function call parameter analysis (#4938)
- Fix types for
shouldTransformCachedModule
(#4932)
Merge Requests
- #4925: chore: repl style add scoped (@btea)
- #4926: docs: Update the x_google_ignorelist url (@jecfish)
- #4932: Allow shouldTransformCachedModule to return null (@bluwy)
- #4935: Bump peter-evans/create-or-update-comment from 2 to 3 ( @dependabot[bot])
- #4936: Disable puppeteer sandbox to fix Vercel deployment ( @lukastaegert)
- #4938: Improve memory usage for parameter deoptimizations ( @lukastaegert)
v3.20.2
2023-03-24
Bug Fixes
- Fix a crash when using a manual chunk entry that is not already included in the module graph (#4921)
- Fix a crash when reporting a warning with incorrect sourcemap information (#4922)
Merge Requests
- #4921: Handle manual chunks where the entry is not part of the module graph (@lukastaegert)
- #4922: Do not fail if the location of a warning is outside the original source (@lukastaegert)
v3.20.1
2023-03-23
Bug Fixes
- Fix returned file name from this.getFileName when assets are deduplicated (#4919)
Merge Requests
- #4919: Only set asset names when finalizing (@lukastaegert)
v3.20.0
2023-03-20
Features
- Allow dynamically imported files to have synthetic named exports when preserving modules (#4913)
Bug Fixes
- Use deterministic file name when emitting several files with same source (#4912)
- Fix a crash when dynamically importing a file with synthetic named exports when preserving modules (#4913)
Merge Requests
- #4912: fix: make file name deterministic in parallel emits (fix #4909) ( @sun0day)
- #4913: Provide synthetic namespace for dynamic imports when perserving modules (@lukastaegert)
v3.19.1
2023-03-10
Bug Fixes
- Produce valid code when the first statement in aclass static block is tree-shaken (#4898)
Merge Requests
- #4898: fix: set a correct node location for static blocks (@TrickyPi)
-
#4900: docs: fix table at
output.sanitizeFileName
section (@0x009922)
v3.19.0
2023-03-09
Features
- Make reassignment tracking of call parameters more specific to no lose information when an object is passed to a function (#4892)
Merge Requests
-
#4890: Fix
npm run dev
(@lukastaegert) - #4892: Only selectively deoptimize call parameters (@lukastaegert)
- #4897: Pre-render mermaid graphs on website (@lukastaegert)
v3.18.0
2023-03-01
Features
- Add
experimentalLogSideEffects
to log the first detected side effect in every module (#4871) - Ignore-list sourcemaps of files inside node_modules by default (#4877)
Merge Requests
- #4871: Add experimental logging for side effects (@lukastaegert)
-
#4877: feat: mark files in a
node_modules
as ignore-listed by default (@bmeurer) - #4880: build: use @rollup/plugin-replace to replace chokidar fsevents ( @dnalborczyk)
- #4887: Refactor (@dnalborczyk)
v3.17.3
2023-02-25
Bug Fixes
- Handle non-URL-safe characters when poly-filling import.meta.url (#4875)
Merge Requests
- #4870: fix: style optimization in dark mode (@huodoushigemi)
-
#4875: Fix transformation of
import.meta.url
in CommonJS (@fasttime) - #4876: fix: wrong params of the transform hook (@ZzqiZQute)
- #4878: Improve test stability (@lukastaegert)
v3.17.2
2023-02-20
Bug Fixes
- Do not omit code if a file that only re-exports a used variable has
moduleSideEffects
set totrue
(#4867) - Add missing
needsCodeReference
property in TypeScript for asset tree-shaking (#4868) - Add correct side effect configuration for additional Object and Promise methods (#4323)
Merge Requests
- #4323: feat: add known globals (@dnalborczyk)
- #4867: Include side effects of re-exporters unless they have moduleSideEffects: false (@lukastaegert)
-
#4868: Add
needsCodeReference
property toEmittedAsset
(@sapphi-red)
v3.17.1
2023-02-18
Bug Fixes
- Add TypeScript types for
loadConfigFile
(#4853) - Fix an issue that could include unused classes in the bundle if their super class was in a file with
moduleSideEffects: false
(#4866)
Merge Requests
- #4853: feat: export loadConfigFile type (@TrickyPi)
- #4866: Do not mark variable access in files without side effects as TDZ (@lukastaegert)
v3.17.0
2023-02-18
Features
- Deprecate
experimentalDeepDynamicChunkOptimization
and always run the full chunk generation algorithm (#4862)
Bug Fixes
- Fix an issue that caused very slow builds for projects with over 1000 dynamic imports when
experimentalDeepDynamicChunkOptimization
was enabled (#4862)
Merge Requests
- #4862: Improve chunking performance (@lukastaegert)
v3.16.0
2023-02-17
Features
- Support
output.sourcemapIgnoreList
option to mark file sources as ignored in thex_google_ignoreList
attribute of the resulting sourcemap (#4848) - Support sourcemaps where
sourcesContent
containsnull
entries (#4846) - Allow explicitly passing
true
for thecache
option to override Vite's default (#4859)
Bug Fixes
- Fix an issue where unrelated side effects spilled into other chunks when using the
experimentalMinChunkSize
option ( #4851)
Merge Requests
- #4846: Update magic-string and adjust types. (@bmeurer)
-
#4848: Introduce
sourcemapIgnoreList
predicate. (@bmeurer) - #4851: Fix chunk graph update when merging chunks for minChunkSize ( @lukastaegert)
- #4852: docs: make api params more readable (@cunzaizhuyi)
- #4856: simplify code in includeStatements (@TrickyPi)
- #4859: Allow to pass "true" to InputOptions.cache (@danielrentz)
v3.15.0
2023-02-10
Features
- Do not consider instantiating a constructor a side effect if it adds properties to "this" and is instantiated elsewhere (#4842)
Bug Fixes
- Improve side effect detection in constructors (#4842)
Merge Requests
- #4842: fix: add this option to context.ignore (@TrickyPi)
- #4843: fixed the logo link (@oMatheuss)
- #4844: Update index.md (@cunzaizhuyi)
- #4845: docs: fix style (@TrickyPi)
v3.14.0
2023-02-05
Features
- Add
experimentalDeepDynamicChunkOptimization
option to produce fewer chunks from dynamic imports (#4837)
Merge Requests
- #4837: Add flag to re-enable deep dynamic chunk optimization ( @lukastaegert)
- #4839: fix: correct incorrect assertions (@TrickyPi)
v3.13.0
2023-02-03
Features
- Prevent chunk cycles when using
experimentalMinChunkSize
(#4723)
Merge Requests
- #4723: Improve minChunkSize algorithm (@lukastaegert)
- #4833: docs: Fix typo (@mturoci)
- #4835: Tables in docs (@lukastaegert)
v3.12.1
2023-02-01
Bug Fixes
- Handle self-references in class static blocks and construtors when the class is renamed (#4827)
- Improve warnings when creating circular chunks taht reexport variables (#4829)
Merge Requests
- #4827: fix: use the original class name in the class body (@TrickyPi)
- #4829: Improve and fix cross-chunk-reexport warning (@lukastaegert)
- #4830: Add Algolia doc search (@lukastaegert)
- #4831: Add warning not to add assets directly to the bundle ( @lukastaegert)
v3.12.0
2023-01-28
Features
- Change generated external namespace reexport helper code for CommonJS to better work with NodeJS named export detection (#4826)
Merge Requests
- #4825: Add and use anchors for nested options (@lukastaegert)
- #4826: Use old namespace reexport code pattern for better Node support ( @lukastaegert)
v3.11.0
2023-01-26
Features
- Support opt-in tree-shaking for emitted assets based on code references (#4805)
Bug Fixes
- Adapt documentation references in Rollup to new website (#4807)
Merge Requests
- #4805: feat: add needsCodeReference field to EmittedAsset (@TrickyPi)
- #4807: Rewrite website in Vitepress and merge it into the main repository (@lukastaegert)
- #4816: web-publisher: Update docs/faqs/index.md (@PuruVJ)
- #4819: Replace fs-extra with built-ins (@dnalborczyk)
- #4820: Introduce timeout-minutes in Github actions ci (@dnalborczyk)
- #4822: Tweak document landing page (@sapphi-red)
- #4823: Minor migration guide improvements (@sapphi-red)
- #4824: Add most options to the REPL (@lukastaegert)
v3.10.1
2023-01-20
Bug Fixes
- Fix some crashes when using optional chaining with namespaces and improve tree-shaking (#4812)
- Avoid wrongly removed code when using optional chaining (#4812)
Merge Requests
- #4809: fix: rollup bin file is in dist folder (@saibotsivad)
- #4812: Rework tree-shaking support for optional chaining (@lukastaegert)
v3.10.0
2023-01-12
Features
- Add information about the resolving plugin to resolved ids (#4789)
- Improve treeshaking for optional chaining when the root is nullish (#4797)
Bug Fixes
- Remove unnecessary internal defaults for acorn options (#4786)
Merge Requests
- #4785: Use @jridgewell/sourcemap-codec (@bluwy)
- #4786: Remove default acorn options + other fixes (@dnalborczyk)
-
#4789: feat: add
resolvedBy
field toResolvedId
(@TrickyPi) - #4794: fix: import can be shortened (@cunzaizhuyi)
- #4796: Update dependencies (@lukastaegert)
- #4797: feat: treeshake for optional chaining (@antfu)
v3.9.1
2023-01-02
Bug Fixes
- Sort keys in generated dynamic namespace objects (#4780)
- Do not consider Array.group to be side effect free as the specs have changed (#4779)
Merge Requests
- #4777: Import from node:fs/promises (@dnalborczyk)
- #4778: Bump deps (@dnalborczyk)
- #4779: Remove array grouping (web compat issue) (@dnalborczyk)
- #4780: Sort namespace object keys (@dnalborczyk)
- #4781: Use Set and builtin-modules package (@dnalborczyk)
- #4782: Use more restrictive types (@dnalborczyk)
v3.9.0
2022-12-28
Features
- Support ES2022 arbitrary module namespace identifiers (#4770)
- Add optional
version
property to plugin type (#4771)
Merge Requests
- #4768: Fix small typo in 999-big-list-of-options.md (@ericmutta)
- #4769: docs: add a instruction about how to run one test on your local computer (@TrickyPi)
- #4770: Add support for arbitrary module namespace identifiers ( @lukastaegert)
-
#4771: Add
version
property to Plugin type (@Septh)
v3.8.1
2022-12-23
Bug Fixes
- Reduce memory footprint when explicitly passing
cache: false
(#4762) - Fix a crash when preserving modules and reexporting namespaces (#4766)
Merge Requests
- #4762: Improve AST garbage collection (@bluwy)
- #4766: Fix handling of namespace reexports when preserving modules ( @lukastaegert)
v3.8.0
2022-12-22
Features
- Deduplicate ESM exports and reexports when preserving modules (#4759)
Bug Fixes
- Handle files that are emitted as a side effect of the manualChunks option (#4759)
Merge Requests
- #4759: feat: deduplicate reexports and renderedExports to simplify output (@TrickyPi)
- #4761: Support emitting files via manualChunks in output (@lukastaegert)
- #4763: docs: update outdated info (@TrickyPi)
v3.7.5
2022-12-17
Bug Fixes
- Avoid name shadowing when default exporting a class that matches the name of another class (#4756)
- Do not display the error message both in a separate line and in the stack trace in rollup CLI (#4749)
- Make type of
RollupWarning.cause
compatible withError.cause
(#4757) - Do not swallow side effects when interacting with modules namespaces nested in another object (#4758)
Merge Requests
-
#4749: feat: simplify
stack
info in cli error (@TrickyPi) - #4756: Avoid name conflicts for default exported classes (@lukastaegert)
- #4757: fix: RollupLog cause allow unknown (@Shinigami92)
- #4758: Correctly handle side effects when a namespace is nested in an object (@lukastaegert)
v3.7.4
2022-12-13
Bug Fixes
- Do not remove calls to
.exec
and.test
for included stateful regular expressions (#4742)
Merge Requests
- #4742: fix: check whether RegExp have the global or sticky flags set ( @TrickyPi)
v3.7.3
2022-12-11
Bug Fixes
- Ensure
this.getFileName
no longer returns a placeholder as soon as hash placeholders have been resolved (#4747)
Merge Requests
- #4747: provide hashed file name when using this.getFileName in generateBundle (@lukastaegert)
v3.7.2
2022-12-10
Bug Fixes
- Improve chunk generation performance when one module is dynamically imported by many other modules (#4736)
Merge Requests
- #4736: Improve chunk assignment performance (@lukastaegert)
v3.7.1
2022-12-09
Bug Fixes
- Ad a hint to use @rollup/plugin-json when imports from a JSON file are not found (#4741)
Merge Requests
- #4741: fix: provide json hint when importing a no export json file ( @TrickyPi)
v3.7.0
2022-12-08
Features
- Do not treat
.test
and.exec
on regular expressions as side effects (#4737)
Merge Requests
- #4737: feat: add sutiable RegExp prototype methods (@TrickyPi)
v3.6.0
2022-12-05
Features
- extend
this.getModuleInfo
with information about exports (#4731)
Merge Requests
-
#4731: feat: add
exports
andexportedBindings
toModule
class ( @TrickyPi)
v3.5.1
2022-12-01
Bug Fixes
- Accept functions returning a config in defineConfig (#4728)
Merge Requests
v3.5.0
2022-11-27
Features
- Add
treeshake.manualPureFunctions
to override static analysis for explicit function names (#4718)
Bug Fixes
- Do not throw when a plugin uses
this.load
without awaiting its result (#4725)
Merge Requests
- #4718: Add simple way to manually declare pure functions (@lukastaegert)
- #4725: Fix isIncluded error when using rollup-plugin-typescript2 ( @lukastaegert)
v3.4.0
2022-11-22
Features
- Do not keep unused
Object.freeze
calls on object literals (#4720)
Merge Requests
- #4720: Only consider Object.freeze a side effect if the argument is used (@lukastaegert)
v3.3.0
2022-11-12
Features
- Add "experimentalMinChunkSize" option to merge smaller chunks into larger ones (#4705)
- Automatically deduplicate assets again when the source is a
Buffer
(#4712) - Deduplicate
Buffer
withstring
assets (#4712)
Bug Fixes
- Support plugins with object hooks when using
perf: true
(#4707)
Merge Requests
- #4702: docs: add additional tips for heap out of memory (@benmccann)
- #4705: Allow to define minimum chunk size limit (@lukastaegert)
- #4707: Fix perf timers for object hooks (@lukastaegert)
- #4710: Update terser docs (@nikolas)
- #4712: feat: deduplicate assets with buffer source (@patak-dev)
v3.2.5
2022-11-01
Bug Fixes
- We deconflicting classes, ensure the original class name still does not shadow variables (#4697)
Merge Requests
- #4697: Prevent class ids from shadowing other variables (@lukastaegert)
v3.2.4
2022-10-31
Bug Fixes
- Always use forward slashes in chunk ids when preserving modules, even on Windows (#4693)
- Escape problematic characters in ids when rewriting
import.meta.url
(#4693)
Merge Requests
- #4685: update package-lock version (@jerry-lllman)
- #4689: Update 07-tools.md (@cokert)
- #4693: Use correct import.meta.url slashes on Windows (@lukastaegert)
v3.2.3
2022-10-18
Bug Fixes
- Fix an issue whre Rollup confused
new.target
withimport.meta
(#4679) - Ensure that Rollup does not make assumptions about the value of unknown namespace import members (#4684)
Merge Requests
- #4679: Do not rewrite new.target (@lukastaegert)
- #4683: Remove typo in resolveId documentation (@ChrispyChris)
- #4684: Return correct values for unknown namespace members ( @lukastaegert)
v3.2.2
2022-10-16
Bug Fixes
- Do not hang/crash on hashbang comments in input modules (#4676)
Merge Requests
- #4675: refactor: improve & simplify types (@sxzz)
- #4676: Ignore hashhbang comments (@lukastaegert)
v3.2.1
2022-10-16
Bug Fixes
- Rewrite class declarations to preserve their .name property if necessary (#4674)
Merge Requests
- #4674: Preserve rendered class names (@lukastaegert)
v3.2.0
2022-10-15
Features
- Support providing Promises as plugins like Vite (#4671)
Merge Requests
- #4666: Add unicorn plugin (@lukastaegert)
- #4667: refactor: improve types (@sxzz)
- #4668: fix: nested plugin in options stage (@sxzz)
- #4669: refactor: merge duplicate imports (@c0dedance)
- #4670: docs: fix minor typo in migration documentation (@ThisIsMissEm)
- #4671: feat: support async plugins (@sxzz)
v3.1.0
2022-10-12
Features
- Support using arrays of plugins as plugins like Vite (#4657)
Merge Requests
v3.0.1
2022-10-12
Bug Fixes
- Fix installation on Windows (#4662)
- Avoid missing parameters that are only used in a destructuring initializer (#4663)
Merge Requests
- #4661: Enforce type imports (@lukastaegert)
- #4662: fix: missing "node" causes run script error (@c0dedance)
- #4663: Ensure the initializer of a destructuring declaration is always included if the id is included (@lukastaegert)
- #4664: fix: remove lint:js:nofix script redundancy options (@c0dedance)
v3.0.0
2022-10-11
Breaking Changes
General Changes
- Rollup now requires at least Node 14.18.0 to run (#4548 and #4596)
- The browser build has been split into a separate package
@rollup/browser
(#4593) - The node build uses the
node:
prefix for imports of builtin modules (#4596) - Some previously deprecated features have been removed (#4552):
- Some plugin context functions have been removed:
-
this.emitAsset()
: usethis.emitFile()
-
this.emitChunk()
: usethis.emitFile()
-
this.getAssetFileName()
: usethis.getFileName()
-
this.getChunkFileName()
: usethis.getFileName()
-
this.isExternal()
: usethis.resolve()
-
this.resolveId()
: usethis.resolve()
-
- The
resolveAssetUrl
plugin hook has been removed: useresolveFileUrl
- Rollup no longer passes
assetReferenceId
orchunkReferenceId
parameters toresolveFileUrl
- The
treeshake.pureExternalModules
option has been removed: usetreeshake.moduleSideEffects: 'no-external'
- You may no longer use
true
orfalse
foroutput.interop
. As a replacement fortrue
, you can use "compat" - Emitted assets no longer have an
isAsset
flag in the bundle - Rollup will no longer fix assets added directly to the bundle by adding the
type: "asset"
field
- Some plugin context functions have been removed:
- Some features that were previously marked for deprecation now show warnings when used (#4552):
- Some options have been deprecated:
-
inlineDynamicImports
as part of the input options: useoutput. inlineDynamicImports
-
manualChunks
as part of the input options: useoutput. manualChunks
-
maxParallelFileReads
: use `maxParallelFileOps -
output.preferConst
: useoutput.generatedCode.constBindings
-
output.dynamicImportFunction
: use therenderDynamicImport
plugin hook -
output.namespaceToStringTag
: useoutput.generatedCode.symbols
-
preserveModules
as part of the input options: useoutput. preserveModules
-
- You should no longer access
this.moduleIds
in plugins: usethis.getModuleIds()
- You should no longer access
this.getModuleInfo(...).hasModuleSideEffects
in plugins: usethis.getModuleInfo(...).moduleSideEffects
- Some options have been deprecated:
- Configuration files are only bundled if either the
--configPlugin
or the--bundleConfigAsCjs
options are used. The configuration is bundled to an ES module unless the--bundleConfigAsCjs
option is used. In all other cases, configuration is now loaded using Node's native mechanisms (#4574 and #4621) - The properties attached to some errors have been changed so that there are fewer different possible properties with consistent types (#4579)
- Some errors have been replaced by others (ILLEGAL_NAMESPACE_REASSIGNMENT -> ILLEGAL_REASSIGNMENT, NON_EXISTENT_EXPORT -> MISSING_EXPORT) (#4579)
- Files in
rollup/dist/*
can only be required using their file extension (#4581) - The
loadConfigFile
helper now has a named export of the same name instead of a default export (#4581) - When using the API and sourcemaps, sourcemap comments are contained in the emitted files and sourcemaps are emitted as regular assets (#4605)
- Watch mode no longer uses Node's EventEmitter but a custom implementation that awaits Promises returned from event handlers (#4609)
- Assets may only be deduplicated with previously emitted assets if their source is a
string
(#4644) - By default, Rollup will keep external dynamic imports as
import(…)
in commonjs output unlessoutput.dynamicImportInCjs
is set to false (#4647)
Changes to Rollup Options
- As functions passed to
output.banner/footer/intro/outro
are now called per-chunk, they should be careful to avoid performance-heavy operations (#4543) -
entryFileNames/chunkFileNames
functions now longer have access to the rendered module information viamodules
, only to a list of includedmoduleIds
(#4543) - The path of a module is no longer prepended to the corresponding chunk when preserving modules (#4565)
- When preserving modules, the
[name]
placeholder (as well as thechunkInfo.name
property when using a function) now includes the relative path of the chunk as well as optionally the file extension if the extension is not one of.js
,.jsx
,.mjs
,.cjs
,.ts
,.tsx
,.mts
, or.cts
(#4565) - The
[ext]
,[extName]
and[assetExtName]
placeholders are no longer supported when preserving modules (#4565) - The
perf
option no longer collects timings for the asynchronous part of plugin hooks as the readings were wildly inaccurate and very misleading, and timings are adapted to the new hashing algorithm (#4566) - Change the default value of
makeAbsoluteExternalsRelative
to "ifRelativeSource" so that absolute external imports will no longer become relative imports in the output, while relative external imports will still be renormalized ( #4567) - Change the default for
output.generatedCode.reservedNamesAsProps
to no longer quote properties likedefault
by default (#4568) - Change the default for
preserveEntrySignatures
to "exports-only" so that by default, empty facades for entry chunks are no longer created (#4576) - Change the default for
output.interop
to "default" to better align with NodeJS interop (#4611) - Change the default for
output.esModule
to "if-default-prop", which only adds __esModule when the default export would be a property (#4611) - Change the default for
output.systemNullSetters
totrue
, which requires at least SystemJS 6.3.3 (#4649)
Plugin API Changes
- Plugins that add/change/remove imports or exports in
renderChunk
should make sure to updateChunkInfo.imports/importedBindings/exports
accordingly (#4543) - The order of plugin hooks when generating output has changed (#4543)
- Chunk information passed to
renderChunk
now contains names with hash placeholders instead of final names, which will be replaced when used in the returned code orChunkInfo.imports/importedBindings/exports
(#4543 and #4631) - Hooks defined in output plugins will now run after hooks defined in input plugins (used to be the other way around) ( #3846)
Features
- Functions passed to
output.banner/footer/intro/outro
are now called per-chunk with some chunk information (#4543) - Plugins can access the entire chunk graph via an additional parameter in
renderChunk
(#4543) - Chunk hashes only depend on the actual content of the chunk and are otherwise stable against things like renamed/moved source files or changed module resolution order (#4543)
- The length of generated file hashes can be customized both globally and per-chunk (#4543)
- When preserving modules, the regular
entryFileNames
logic is used and the path is included in the[name]
property. This finally gives full control over file names when preserving modules (#4565) -
output.entryFileNames
now also supports the[hash]
placeholder when preserving modules (#4565) - The
perf
option will now collect (synchronous) timings for all plugin hooks, not just a small selection (#4566) - All errors thrown by Rollup have
name: RollupError
now to make clearer that those are custom error types (#4579) - Error properties that reference modules (such as id and ids) will now always contain the full ids. Only the error message will use shortened ids (#4579)
- Errors that are thrown in response to other errors (e.g. parse errors thrown by acorn) will now use the standardized cause property to reference the original error (#4579)
- If sourcemaps are enabled, files will contain the appropriate sourcemap comment in
generateBundle
and sourcemap files are available as regular assets (#4605) - Returning a Promise from an event handler attached to a RollupWatcher instance will make Rollup wait for the Promise to resolve (#4609)
- There is a new value "compat" for output.interop that is similar to "auto" but uses duck-typing to determine if there is a default export (#4611)
- There is a new value "if-default-prop" for esModule that only adds an
__esModule
marker to the bundle if there is a default export that is rendered as a property (#4611) - Rollup can statically resolve checks for
foo[Symbol.toStringTag]
to "Module" if foo is a namespace (#4611) - There is a new CLI option
--bundleConfigAsCjs
which will force the configuration to be bundled to CommonJS (#4621) - Import assertions for external imports that are present in the input files will be retained in ESM output (#4646)
- Rollup will warn when a module is imported with conflicting import assertions (#4646)
- Plugins can add, remove or change import assertions when resolving ids (#4646)
- The
output.externalImportAssertions
option allows to turn off emission of import assertions (#4646) - Use
output.dynamicImportInCjs
to control if dynamic imports are emitted asimport(…)
or wrappedrequire(…)
when generating commonjs output (#4647)
Bug Fixes
- Chunk hashes take changes in
renderChunk
, e.g. minification, into account (#4543) - Hashes of referenced assets are properly reflected in the chunk hash (#4543)
- No longer warn about implicitly using default export mode to not tempt users to switch to named export mode and break Node compatibility (#4624)
- Avoid performance issues when emitting thousands of assets (#4644)
Merge Requests
- #3846: [v3.0] Run output plugins last (@aleclarson)
- #4543: [v3.0] New hashing algorithm that "fixes (nearly) everything" ( @lukastaegert)
- #4548: [v3.0] Deprecate Node 12 (@lukastaegert)
- #4552: [v3.0] Remove actively deprecated features, show warnings for other deprecated features (@lukastaegert)
- #4558: [v3.0] Convert build scripts to ESM, update dependencies ( @lukastaegert)
- #4565: [v3.0] Rework file name patterns when preserving modules ( @lukastaegert)
- #4566: [v3.0] Restructure timings (@lukastaegert)
- #4567: [v3.0] Change default for makeAbsoluteExternalsRelative ( @lukastaegert)
- #4568: [v3.0] Change default for output.generatedCode.reservedNamesAsProps (@lukastaegert)
- #4574: [v3.0] Better esm config file support (@lukastaegert)
- #4575: [v3.0] Show deprecation warning for maxParallelFileReads ( @lukastaegert)
- #4576: [v3.0] Change default for preserveEntrySignatures to exports-only (@lukastaegert)
- #4579: [v3.0] Refine errors and warnings (@lukastaegert)
- #4581: [v3.0] Use named export for loadConfigFile (@lukastaegert)
- #4592: [v3.0] Port doc changes from #4572 and #4583 to 3.0 (@berniegp)
- #4593: [v3.0] Browser build (@lukastaegert)
- #4596: [v3.0] Use "node:" prefix for imports of node builtins ( @lukastaegert)
- #4605: [v3.0] Better sourcemap emission (@lukastaegert)
- #4609: [v3.0] Custom awaiting watch emitter (@lukastaegert)
- #4611: [v3.0] Improve interop defaults (@lukastaegert)
- #4621: [v3.0] Always try to load config files via Node if possible ( @lukastaegert)
- #4624: [v3.0] Remove warning when using implicit default export mode ( @lukastaegert)
- #4631: [v3.0] Use ASCII characters for hash placeholders (@lukastaegert)
- #4644: [v3.0] Improve performance of asset emissions (@lukastaegert)
- #4646: [v3.0] Basic support for import assertions (@lukastaegert)
- #4647: [v3.0] Keep dynamic imports in CommonJS output (@lukastaegert)
- #4649: [v3.0] Change default for systemNullSetters (@lukastaegert)
- #4651: [v3.0] use compiler target ES2020 (@dnalborczyk)
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.