rollup/rollup
### [`v3.15.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3150)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.14.0...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](https://togithub.com/rollup/rollup/issues/4842))
##### Bug Fixes
- Improve side effect detection in constructors ([#4842](https://togithub.com/rollup/rollup/issues/4842))
##### Pull Requests
- [#4842](https://togithub.com/rollup/rollup/pull/4842): fix: add this option to context.ignore ([@TrickyPi](https://togithub.com/TrickyPi))
- [#4843](https://togithub.com/rollup/rollup/pull/4843): fixed the logo link ([@oMatheuss](https://togithub.com/oMatheuss))
- [#4844](https://togithub.com/rollup/rollup/pull/4844): Update index.md ([@cunzaizhuyi](https://togithub.com/cunzaizhuyi))
- [#4845](https://togithub.com/rollup/rollup/pull/4845): docs: fix style ([@TrickyPi](https://togithub.com/TrickyPi))
### [`v3.14.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3140)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.13.0...v3.14.0)
*2023-02-05*
##### Features
- Add `experimentalDeepDynamicChunkOptimization` option to produce fewer chunks from dynamic imports ([#4837](https://togithub.com/rollup/rollup/issues/4837))
##### Pull Requests
- [#4837](https://togithub.com/rollup/rollup/pull/4837): Add flag to re-enable deep dynamic chunk optimization ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4839](https://togithub.com/rollup/rollup/pull/4839): fix: correct incorrect assertions ([@TrickyPi](https://togithub.com/TrickyPi))
### [`v3.13.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3130)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.12.1...v3.13.0)
*2023-02-03*
##### Features
- Prevent chunk cycles when using `experimentalMinChunkSize` ([#4723](https://togithub.com/rollup/rollup/issues/4723))
##### Pull Requests
- [#4723](https://togithub.com/rollup/rollup/pull/4723): Improve minChunkSize algorithm ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4833](https://togithub.com/rollup/rollup/pull/4833): docs: Fix typo ([@mturoci](https://togithub.com/mturoci))
- [#4835](https://togithub.com/rollup/rollup/pull/4835): Tables in docs ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.12.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3121)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.12.0...v3.12.1)
*2023-02-01*
##### Bug Fixes
- Handle self-references in class static blocks and construtors when the class is renamed ([#4827](https://togithub.com/rollup/rollup/issues/4827))
- Improve warnings when creating circular chunks taht reexport variables ([#4829](https://togithub.com/rollup/rollup/issues/4829))
##### Pull Requests
- [#4827](https://togithub.com/rollup/rollup/pull/4827): fix: use the original class name in the class body ([@TrickyPi](https://togithub.com/TrickyPi))
- [#4829](https://togithub.com/rollup/rollup/pull/4829): Improve and fix cross-chunk-reexport warning ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4830](https://togithub.com/rollup/rollup/pull/4830): Add Algolia doc search ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4831](https://togithub.com/rollup/rollup/pull/4831): Add warning not to add assets directly to the bundle ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.12.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3120)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.11.0...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](https://togithub.com/rollup/rollup/issues/4826))
##### Pull Requests
- [#4825](https://togithub.com/rollup/rollup/pull/4825): Add and use anchors for nested options ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4826](https://togithub.com/rollup/rollup/pull/4826): Use old namespace reexport code pattern for better Node support ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.11.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3110)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.10.1...v3.11.0)
*2023-01-26*
##### Features
- Support opt-in tree-shaking for emitted assets based on code references ([#4805](https://togithub.com/rollup/rollup/issues/4805))
##### Bug Fixes
- Adapt documentation references in Rollup to new website ([#4807](https://togithub.com/rollup/rollup/issues/4807))
##### Pull Requests
- [#4805](https://togithub.com/rollup/rollup/pull/4805): feat: add needsCodeReference field to EmittedAsset ([@TrickyPi](https://togithub.com/TrickyPi))
- [#4807](https://togithub.com/rollup/rollup/pull/4807): Rewrite website in Vitepress and merge it into the main repository ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4816](https://togithub.com/rollup/rollup/pull/4816): web-publisher: Update docs/faqs/index.md ([@PuruVJ](https://togithub.com/PuruVJ))
- [#4819](https://togithub.com/rollup/rollup/pull/4819): Replace fs-extra with built-ins ([@dnalborczyk](https://togithub.com/dnalborczyk))
- [#4820](https://togithub.com/rollup/rollup/pull/4820): Introduce timeout-minutes in Github actions ci ([@dnalborczyk](https://togithub.com/dnalborczyk))
- [#4822](https://togithub.com/rollup/rollup/pull/4822): Tweak document landing page ([@sapphi-red](https://togithub.com/sapphi-red))
- [#4823](https://togithub.com/rollup/rollup/pull/4823): Minor migration guide improvements ([@sapphi-red](https://togithub.com/sapphi-red))
- [#4824](https://togithub.com/rollup/rollup/pull/4824): Add most options to the REPL ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.10.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3101)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.10.0...v3.10.1)
*2023-01-20*
##### Bug Fixes
- Fix some crashes when using optional chaining with namespaces and improve tree-shaking ([#4812](https://togithub.com/rollup/rollup/issues/4812))
- Avoid wrongly removed code when using optional chaining ([#4812](https://togithub.com/rollup/rollup/issues/4812))
##### Pull Requests
- [#4809](https://togithub.com/rollup/rollup/pull/4809): fix: rollup bin file is in dist folder ([@saibotsivad](https://togithub.com/saibotsivad))
- [#4812](https://togithub.com/rollup/rollup/pull/4812): Rework tree-shaking support for optional chaining ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.10.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3100)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.9.1...v3.10.0)
*2023-01-12*
##### Features
- Add information about the resolving plugin to resolved ids ([#4789](https://togithub.com/rollup/rollup/issues/4789))
- Improve treeshaking for optional chaining when the root is nullish ([#4797](https://togithub.com/rollup/rollup/issues/4797))
##### Bug Fixes
- Remove unnecessary internal defaults for acorn options ([#4786](https://togithub.com/rollup/rollup/issues/4786))
##### Pull Requests
- [#4785](https://togithub.com/rollup/rollup/pull/4785): Use [@jridgewell/sourcemap-codec](https://togithub.com/jridgewell/sourcemap-codec) ([@bluwy](https://togithub.com/bluwy))
- [#4786](https://togithub.com/rollup/rollup/pull/4786): Remove default acorn options + other fixes ([@dnalborczyk](https://togithub.com/dnalborczyk))
- [#4789](https://togithub.com/rollup/rollup/pull/4789): feat: add `resolvedBy` field to `ResolvedId` ([@TrickyPi](https://togithub.com/TrickyPi))
- [#4794](https://togithub.com/rollup/rollup/pull/4794): fix: import can be shortened ([@cunzaizhuyi](https://togithub.com/cunzaizhuyi))
- [#4796](https://togithub.com/rollup/rollup/pull/4796): Update dependencies ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4797](https://togithub.com/rollup/rollup/pull/4797): feat: treeshake for optional chaining ([@antfu](https://togithub.com/antfu))
### [`v3.9.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#391)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.9.0...v3.9.1)
*2023-01-02*
##### Bug Fixes
- Sort keys in generated dynamic namespace objects ([#4780](https://togithub.com/rollup/rollup/issues/4780))
- Do not consider Array.group to be side effect free as the specs have changed ([#4779](https://togithub.com/rollup/rollup/issues/4779))
##### Pull Requests
- [#4777](https://togithub.com/rollup/rollup/pull/4777): Import from node:fs/promises ([@dnalborczyk](https://togithub.com/dnalborczyk))
- [#4778](https://togithub.com/rollup/rollup/pull/4778): Bump deps ([@dnalborczyk](https://togithub.com/dnalborczyk))
- [#4779](https://togithub.com/rollup/rollup/pull/4779): Remove array grouping (web compat issue) ([@dnalborczyk](https://togithub.com/dnalborczyk))
- [#4780](https://togithub.com/rollup/rollup/pull/4780): Sort namespace object keys ([@dnalborczyk](https://togithub.com/dnalborczyk))
- [#4781](https://togithub.com/rollup/rollup/pull/4781): Use Set and builtin-modules package ([@dnalborczyk](https://togithub.com/dnalborczyk))
- [#4782](https://togithub.com/rollup/rollup/pull/4782): Use more restrictive types ([@dnalborczyk](https://togithub.com/dnalborczyk))
### [`v3.9.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#390)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.8.1...v3.9.0)
*2022-12-28*
##### Features
- Support ES2022 arbitrary module namespace identifiers ([#4770](https://togithub.com/rollup/rollup/issues/4770))
- Add optional `version` property to plugin type ([#4771](https://togithub.com/rollup/rollup/issues/4771))
##### Pull Requests
- [#4768](https://togithub.com/rollup/rollup/pull/4768): Fix small typo in 999-big-list-of-options.md ([@ericmutta](https://togithub.com/ericmutta))
- [#4769](https://togithub.com/rollup/rollup/pull/4769): docs: add a instruction about how to run one test on your local computer ([@TrickyPi](https://togithub.com/TrickyPi))
- [#4770](https://togithub.com/rollup/rollup/pull/4770): Add support for arbitrary module namespace identifiers ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4771](https://togithub.com/rollup/rollup/pull/4771): Add `version` property to Plugin type ([@Septh](https://togithub.com/Septh))
### [`v3.8.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#381)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.8.0...v3.8.1)
*2022-12-23*
##### Bug Fixes
- Reduce memory footprint when explicitly passing `cache: false` ([#4762](https://togithub.com/rollup/rollup/issues/4762))
- Fix a crash when preserving modules and reexporting namespaces ([#4766](https://togithub.com/rollup/rollup/issues/4766))
##### Pull Requests
- [#4762](https://togithub.com/rollup/rollup/pull/4762): Improve AST garbage collection ([@bluwy](https://togithub.com/bluwy))
- [#4766](https://togithub.com/rollup/rollup/pull/4766): Fix handling of namespace reexports when preserving modules ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.8.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#380)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.7.5...v3.8.0)
*2022-12-22*
##### Features
- Deduplicate ESM exports and reexports when preserving modules ([#4759](https://togithub.com/rollup/rollup/issues/4759))
##### Bug Fixes
- Handle files that are emitted as a side effect of the manualChunks option ([#4759](https://togithub.com/rollup/rollup/issues/4759))
##### Pull Requests
- [#4759](https://togithub.com/rollup/rollup/pull/4759): feat: deduplicate reexports and renderedExports to simplify output ([@TrickyPi](https://togithub.com/TrickyPi))
- [#4761](https://togithub.com/rollup/rollup/pull/4761): Support emitting files via manualChunks in output ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4763](https://togithub.com/rollup/rollup/pull/4763): docs: update outdated info ([@TrickyPi](https://togithub.com/TrickyPi))
### [`v3.7.5`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#375)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.7.4...v3.7.5)
*2022-12-17*
##### Bug Fixes
- Avoid name shadowing when default exporting a class that matches the name of another class ([#4756](https://togithub.com/rollup/rollup/issues/4756))
- Do not display the error message both in a separate line and in the stack trace in rollup CLI ([#4749](https://togithub.com/rollup/rollup/issues/4749))
- Make type of `RollupWarning.cause` compatible with `Error.cause` ([#4757](https://togithub.com/rollup/rollup/issues/4757))
- Do not swallow side effects when interacting with modules namespaces nested in another object ([#4758](https://togithub.com/rollup/rollup/issues/4758))
##### Pull Requests
- [#4749](https://togithub.com/rollup/rollup/pull/4749): feat: simplify `stack` info in cli error ([@TrickyPi](https://togithub.com/TrickyPi))
- [#4756](https://togithub.com/rollup/rollup/pull/4756): Avoid name conflicts for default exported classes ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4757](https://togithub.com/rollup/rollup/pull/4757): fix: RollupLog cause allow unknown ([@Shinigami92](https://togithub.com/Shinigami92))
- [#4758](https://togithub.com/rollup/rollup/pull/4758): Correctly handle side effects when a namespace is nested in an object ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.7.4`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#374)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.7.3...v3.7.4)
*2022-12-13*
##### Bug Fixes
- Do not remove calls to `.exec` and `.test` for included stateful regular expressions ([#4742](https://togithub.com/rollup/rollup/issues/4742))
##### Pull Requests
- [#4742](https://togithub.com/rollup/rollup/pull/4742): fix: check whether RegExp have the global or sticky flags set ([@TrickyPi](https://togithub.com/TrickyPi))
### [`v3.7.3`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#373)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.7.2...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](https://togithub.com/rollup/rollup/issues/4747))
##### Pull Requests
- [#4747](https://togithub.com/rollup/rollup/pull/4747): provide hashed file name when using this.getFileName in generateBundle ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.7.2`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#372)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.7.1...v3.7.2)
*2022-12-10*
##### Bug Fixes
- Improve chunk generation performance when one module is dynamically imported by many other modules ([#4736](https://togithub.com/rollup/rollup/issues/4736))
##### Pull Requests
- [#4736](https://togithub.com/rollup/rollup/pull/4736): Improve chunk assignment performance ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.7.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#371)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.7.0...v3.7.1)
*2022-12-09*
##### Bug Fixes
- Ad a hint to use [@rollup/plugin-json](https://togithub.com/rollup/plugin-json) when imports from a JSON file are not found ([#4741](https://togithub.com/rollup/rollup/issues/4741))
##### Pull Requests
- [#4741](https://togithub.com/rollup/rollup/pull/4741): fix: provide json hint when importing a no export json file ([@TrickyPi](https://togithub.com/TrickyPi))
### [`v3.7.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#370)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.6.0...v3.7.0)
*2022-12-08*
##### Features
- Do not treat `.test` and `.exec` on regular expressions as side effects ([#4737](https://togithub.com/rollup/rollup/issues/4737))
##### Pull Requests
- [#4737](https://togithub.com/rollup/rollup/pull/4737): feat: add sutiable RegExp prototype methods ([@TrickyPi](https://togithub.com/TrickyPi))
### [`v3.6.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#360)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.5.1...v3.6.0)
*2022-12-05*
##### Features
- extend `this.getModuleInfo` with information about exports ([#4731](https://togithub.com/rollup/rollup/issues/4731))
##### Pull Requests
- [#4731](https://togithub.com/rollup/rollup/pull/4731): feat: add `exports` and `exportedBindings` to `Module` class ([@TrickyPi](https://togithub.com/TrickyPi))
### [`v3.5.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#351)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.5.0...v3.5.1)
*2022-12-01*
##### Bug Fixes
- Accept functions returning a config in defineConfig ([#4728](https://togithub.com/rollup/rollup/issues/4728))
##### Pull Requests
- [#4728](https://togithub.com/rollup/rollup/pull/4728): Overload defineConfig to accept a RollupOptionsFunction parameter ([@Septh](https://togithub.com/Septh))
### [`v3.5.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#350)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.4.0...v3.5.0)
*2022-11-27*
##### Features
- Add `treeshake.manualPureFunctions` to override static analysis for explicit function names ([#4718](https://togithub.com/rollup/rollup/issues/4718))
##### Bug Fixes
- Do not throw when a plugin uses `this.load` without awaiting its result ([#4725](https://togithub.com/rollup/rollup/issues/4725))
##### Pull Requests
- [#4718](https://togithub.com/rollup/rollup/pull/4718): Add simple way to manually declare pure functions ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4725](https://togithub.com/rollup/rollup/pull/4725): Fix isIncluded error when using rollup-plugin-typescript2 ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.4.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#340)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.3.0...v3.4.0)
*2022-11-22*
##### Features
- Do not keep unused `Object.freeze` calls on object literals ([#4720](https://togithub.com/rollup/rollup/issues/4720))
##### Pull Requests
- [#4720](https://togithub.com/rollup/rollup/pull/4720): Only consider Object.freeze a side effect if the argument is used ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.3.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#330)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.2.5...v3.3.0)
*2022-11-12*
##### Features
- Add "experimentalMinChunkSize" option to merge smaller chunks into larger ones ([#4705](https://togithub.com/rollup/rollup/issues/4705))
- Automatically deduplicate assets again when the source is a `Buffer` ([#4712](https://togithub.com/rollup/rollup/issues/4712))
- Deduplicate `Buffer` with `string` assets ([#4712](https://togithub.com/rollup/rollup/issues/4712))
##### Bug Fixes
- Support plugins with object hooks when using `perf: true` ([#4707](https://togithub.com/rollup/rollup/issues/4707))
##### Pull Requests
- [#4702](https://togithub.com/rollup/rollup/pull/4702): docs: add additional tips for heap out of memory ([@benmccann](https://togithub.com/benmccann))
- [#4705](https://togithub.com/rollup/rollup/pull/4705): Allow to define minimum chunk size limit ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4707](https://togithub.com/rollup/rollup/pull/4707): Fix perf timers for object hooks ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4710](https://togithub.com/rollup/rollup/pull/4710): Update terser docs ([@nikolas](https://togithub.com/nikolas))
- [#4712](https://togithub.com/rollup/rollup/pull/4712): feat: deduplicate assets with buffer source ([@patak-dev](https://togithub.com/patak-dev))
### [`v3.2.5`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#325)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.2.4...v3.2.5)
*2022-11-01*
##### Bug Fixes
- We deconflicting classes, ensure the original class name still does not shadow variables ([#4697](https://togithub.com/rollup/rollup/issues/4697))
##### Pull Requests
- [#4697](https://togithub.com/rollup/rollup/pull/4697): Prevent class ids from shadowing other variables ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.2.4`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#324)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.2.3...v3.2.4)
*2022-10-31*
##### Bug Fixes
- Always use forward slashes in chunk ids when preserving modules, even on Windows ([#4693](https://togithub.com/rollup/rollup/issues/4693))
- Escape problematic characters in ids when rewriting `import.meta.url` ([#4693](https://togithub.com/rollup/rollup/issues/4693))
##### Pull Requests
- [#4685](https://togithub.com/rollup/rollup/pull/4685): update package-lock version ([@jerry-lllman](https://togithub.com/jerry-lllman))
- [#4689](https://togithub.com/rollup/rollup/pull/4689): Update 07-tools.md ([@cokert](https://togithub.com/cokert))
- [#4693](https://togithub.com/rollup/rollup/pull/4693): Use correct import.meta.url slashes on Windows ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.2.3`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#323)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.2.2...v3.2.3)
*2022-10-18*
##### Bug Fixes
- Fix an issue whre Rollup confused `new.target` with `import.meta` ([#4679](https://togithub.com/rollup/rollup/issues/4679))
- Ensure that Rollup does not make assumptions about the value of unknown namespace import members ([#4684](https://togithub.com/rollup/rollup/issues/4684))
##### Pull Requests
- [#4679](https://togithub.com/rollup/rollup/pull/4679): Do not rewrite new.target ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4683](https://togithub.com/rollup/rollup/pull/4683): Remove typo in resolveId documentation ([@ChrispyChris](https://togithub.com/ChrispyChris))
- [#4684](https://togithub.com/rollup/rollup/pull/4684): Return correct values for unknown namespace members ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.2.2`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#322)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.2.1...v3.2.2)
*2022-10-16*
##### Bug Fixes
- Do not hang/crash on hashbang comments in input modules ([#4676](https://togithub.com/rollup/rollup/issues/4676))
##### Pull Requests
- [#4675](https://togithub.com/rollup/rollup/pull/4675): refactor: improve & simplify types ([@sxzz](https://togithub.com/sxzz))
- [#4676](https://togithub.com/rollup/rollup/pull/4676): Ignore hashhbang comments ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.2.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#321)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.2.0...v3.2.1)
*2022-10-16*
##### Bug Fixes
- Rewrite class declarations to preserve their .name property if necessary ([#4674](https://togithub.com/rollup/rollup/issues/4674))
##### Pull Requests
- [#4674](https://togithub.com/rollup/rollup/pull/4674): Preserve rendered class names ([@lukastaegert](https://togithub.com/lukastaegert))
### [`v3.2.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#320)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.1.0...v3.2.0)
*2022-10-15*
##### Features
- Support providing Promises as plugins like Vite ([#4671](https://togithub.com/rollup/rollup/issues/4671))
##### Pull Requests
- [#4666](https://togithub.com/rollup/rollup/pull/4666): Add unicorn plugin ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4667](https://togithub.com/rollup/rollup/pull/4667): refactor: improve types ([@sxzz](https://togithub.com/sxzz))
- [#4668](https://togithub.com/rollup/rollup/pull/4668): fix: nested plugin in options stage ([@sxzz](https://togithub.com/sxzz))
- [#4669](https://togithub.com/rollup/rollup/pull/4669): refactor: merge duplicate imports ([@c0dedance](https://togithub.com/c0dedance))
- [#4670](https://togithub.com/rollup/rollup/pull/4670): docs: fix minor typo in migration documentation ([@ThisIsMissEm](https://togithub.com/ThisIsMissEm))
- [#4671](https://togithub.com/rollup/rollup/pull/4671): feat: support async plugins ([@sxzz](https://togithub.com/sxzz))
### [`v3.1.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#310)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.0.1...v3.1.0)
*2022-10-12*
##### Features
- Support using arrays of plugins as plugins like Vite ([#4657](https://togithub.com/rollup/rollup/issues/4657))
##### Pull Requests
- [#4657](https://togithub.com/rollup/rollup/pull/4657): feat: support nested plugin ([@sxzz](https://togithub.com/sxzz))
### [`v3.0.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#301)
[Compare Source](https://togithub.com/rollup/rollup/compare/v3.0.0...v3.0.1)
*2022-10-12*
##### Bug Fixes
- Fix installation on Windows ([#4662](https://togithub.com/rollup/rollup/issues/4662))
- Avoid missing parameters that are only used in a destructuring initializer ([#4663](https://togithub.com/rollup/rollup/issues/4663))
##### Pull Requests
- [#4661](https://togithub.com/rollup/rollup/pull/4661): Enforce type imports ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4662](https://togithub.com/rollup/rollup/pull/4662): fix: missing "node" causes run script error ([@c0dedance](https://togithub.com/c0dedance))
- [#4663](https://togithub.com/rollup/rollup/pull/4663): Ensure the initializer of a destructuring declaration is always included if the id is included ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4664](https://togithub.com/rollup/rollup/pull/4664): fix: remove lint:js:nofix script redundancy options ([@c0dedance](https://togithub.com/c0dedance))
### [`v3.0.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#300)
[Compare Source](https://togithub.com/rollup/rollup/compare/v2.79.1...v3.0.0)
*2022-10-11*
##### Breaking Changes
##### General Changes
- Rollup now requires at least Node 14.18.0 to run ([#4548](https://togithub.com/rollup/rollup/issues/4548) and [#4596](https://togithub.com/rollup/rollup/issues/4596))
- The browser build has been split into a separate package `@rollup/browser` ([#4593](https://togithub.com/rollup/rollup/issues/4593))
- The node build uses the `node:` prefix for imports of builtin modules ([#4596](https://togithub.com/rollup/rollup/issues/4596))
- Some previously deprecated features have been removed ([#4552](https://togithub.com/rollup/rollup/issues/4552)):
- Some plugin context functions have been removed:
- `this.emitAsset()`: use `this.emitFile()`
- `this.emitChunk()`: use `this.emitFile()`
- `this.getAssetFileName()`: use `this.getFileName()`
- `this.getChunkFileName()`: use `this.getFileName()`
- `this.isExternal()`: use `this.resolve()`
- `this.resolveId()`: use `this.resolve()`
- The `resolveAssetUrl` plugin hook has been removed: use `resolveFileUrl`
- Rollup no longer passes `assetReferenceId` or `chunkReferenceId` parameters to `resolveFileUrl`
- The `treeshake.pureExternalModules` option has been removed: use `treeshake.moduleSideEffects: 'no-external'`
- You may no longer use `true` or `false` for `output.interop`. As a replacement for `true`, 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 features that were previously marked for deprecation now show warnings when used ([#4552](https://togithub.com/rollup/rollup/issues/4552)):
- Some options have been deprecated:
- `inlineDynamicImports` as part of the input options: use `output. inlineDynamicImports`
- `manualChunks` as part of the input options: use ` output. manualChunks `
- `maxParallelFileReads`: use \`maxParallelFileOps
- `output.preferConst`: use `output.generatedCode.constBindings`
- `output.dynamicImportFunction`: use the `renderDynamicImport` plugin hook
- `output.namespaceToStringTag`: use `output.generatedCode.symbols`
- `preserveModules` as part of the input options: use ` output. preserveModules `
- You should no longer access `this.moduleIds` in plugins: use `this.getModuleIds()`
- You should no longer access `this.getModuleInfo(...).hasModuleSideEffects` in plugins: use `this.getModuleInfo(...).moduleSideEffects`
- 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](https://togithub.com/rollup/rollup/issues/4574) and [#4621](https://togithub.com/rollup/rollup/issues/4621))
- The properties attached to some errors have been changed so that there are fewer different possible properties with consistent types ([#4579](https://togithub.com/rollup/rollup/issues/4579))
- Some errors have been replaced by others (ILLEGAL_NAMESPACE_REASSIGNMENT -> ILLEGAL_REASSIGNMENT, NON_EXISTENT_EXPORT -> MISSING_EXPORT) ([#4579](https://togithub.com/rollup/rollup/issues/4579))
- Files in `rollup/dist/*` can only be required using their file extension ([#4581](https://togithub.com/rollup/rollup/issues/4581))
- The `loadConfigFile` helper now has a named export of the same name instead of a default export ([#4581](https://togithub.com/rollup/rollup/issues/4581))
- When using the API and sourcemaps, sourcemap comments are contained in the emitted files and sourcemaps are emitted as regular assets ([#4605](https://togithub.com/rollup/rollup/issues/4605))
- Watch mode no longer uses Node's EventEmitter but a custom implementation that awaits Promises returned from event handlers ([#4609](https://togithub.com/rollup/rollup/issues/4609))
- Assets may only be deduplicated with previously emitted assets if their source is a `string` ([#4644](https://togithub.com/rollup/rollup/issues/4644))
- By default, Rollup will keep external dynamic imports as `import(…)` in commonjs output unless `output.dynamicImportInCjs` is set to false ([#4647](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4543))
- `entryFileNames/chunkFileNames` functions now longer have access to the rendered module information via `modules`, only to a list of included `moduleIds` ([#4543](https://togithub.com/rollup/rollup/issues/4543))
- The path of a module is no longer prepended to the corresponding chunk when preserving modules ([#4565](https://togithub.com/rollup/rollup/issues/4565))
- When preserving modules, the `[name]` placeholder (as well as the `chunkInfo.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](https://togithub.com/rollup/rollup/issues/4565))
- The `[ext]`, `[extName]` and `[assetExtName]` placeholders are no longer supported when preserving modules ([#4565](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4567))
- Change the default for `output.generatedCode.reservedNamesAsProps` to no longer quote properties like `default` by default ([#4568](https://togithub.com/rollup/rollup/issues/4568))
- Change the default for `preserveEntrySignatures` to "exports-only" so that by default, empty facades for entry chunks are no longer created ([#4576](https://togithub.com/rollup/rollup/issues/4576))
- Change the default for `output.interop` to "default" to better align with NodeJS interop ([#4611](https://togithub.com/rollup/rollup/issues/4611))
- Change the default for `output.esModule` to "if-default-prop", which only adds \__esModule when the default export would be a property ([#4611](https://togithub.com/rollup/rollup/issues/4611))
- Change the default for `output.systemNullSetters` to `true`, which requires at least SystemJS 6.3.3 ([#4649](https://togithub.com/rollup/rollup/issues/4649))
##### Plugin API Changes
- Plugins that add/change/remove imports or exports in `renderChunk` should make sure to update `ChunkInfo.imports/importedBindings/exports` accordingly ([#4543](https://togithub.com/rollup/rollup/issues/4543))
- The order of plugin hooks when generating output has changed ([#4543](https://togithub.com/rollup/rollup/issues/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 or `ChunkInfo.imports/importedBindings/exports` ([#4543](https://togithub.com/rollup/rollup/issues/4543) and [#4631](https://togithub.com/rollup/rollup/issues/4631))
- Hooks defined in output plugins will now run after hooks defined in input plugins (used to be the other way around) ([#3846](https://togithub.com/rollup/rollup/issues/3846))
##### Features
- Functions passed to `output.banner/footer/intro/outro` are now called per-chunk with some chunk information ([#4543](https://togithub.com/rollup/rollup/issues/4543))
- Plugins can access the entire chunk graph via an additional parameter in `renderChunk` ([#4543](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4543))
- The length of generated file hashes can be customized both globally and per-chunk ([#4543](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4565))
- `output.entryFileNames` now also supports the `[hash]` placeholder when preserving modules ([#4565](https://togithub.com/rollup/rollup/issues/4565))
- The `perf` option will now collect (synchronous) timings for all plugin hooks, not just a small selection ([#4566](https://togithub.com/rollup/rollup/issues/4566))
- All errors thrown by Rollup have `name: RollupError` now to make clearer that those are custom error types ([#4579](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4579))
- If sourcemaps are enabled, files will contain the appropriate sourcemap comment in `generateBundle` and sourcemap files are available as regular assets ([#4605](https://togithub.com/rollup/rollup/issues/4605))
- Returning a Promise from an event handler attached to a RollupWatcher instance will make Rollup wait for the Promise to resolve ([#4609](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4611))
- Rollup can statically resolve checks for `foo[Symbol.toStringTag]` to "Module" if foo is a namespace ([#4611](https://togithub.com/rollup/rollup/issues/4611))
- There is a new CLI option `--bundleConfigAsCjs` which will force the configuration to be bundled to CommonJS ([#4621](https://togithub.com/rollup/rollup/issues/4621))
- Import assertions for external imports that are present in the input files will be retained in ESM output ([#4646](https://togithub.com/rollup/rollup/issues/4646))
- Rollup will warn when a module is imported with conflicting import assertions ([#4646](https://togithub.com/rollup/rollup/issues/4646))
- Plugins can add, remove or change import assertions when resolving ids ([#4646](https://togithub.com/rollup/rollup/issues/4646))
- The `output.externalImportAssertions` option allows to turn off emission of import assertions ([#4646](https://togithub.com/rollup/rollup/issues/4646))
- Use `output.dynamicImportInCjs` to control if dynamic imports are emitted as `import(…)` or wrapped `require(…)` when generating commonjs output ([#4647](https://togithub.com/rollup/rollup/issues/4647))
##### Bug Fixes
- Chunk hashes take changes in `renderChunk`, e.g. minification, into account ([#4543](https://togithub.com/rollup/rollup/issues/4543))
- Hashes of referenced assets are properly reflected in the chunk hash ([#4543](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4624))
- Avoid performance issues when emitting thousands of assets ([#4644](https://togithub.com/rollup/rollup/issues/4644))
##### Pull Requests
- [#3846](https://togithub.com/rollup/rollup/pull/3846): \[v3.0] Run output plugins last ([@aleclarson](https://togithub.com/aleclarson))
- [#4543](https://togithub.com/rollup/rollup/pull/4543): \[v3.0] New hashing algorithm that "fixes (nearly) everything" ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4548](https://togithub.com/rollup/rollup/pull/4548): \[v3.0] Deprecate Node 12 ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4552](https://togithub.com/rollup/rollup/pull/4552): \[v3.0] Remove actively deprecated features, show warnings for other deprecated features ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4558](https://togithub.com/rollup/rollup/pull/4558): \[v3.0] Convert build scripts to ESM, update dependencies ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4565](https://togithub.com/rollup/rollup/pull/4565): \[v3.0] Rework file name patterns when preserving modules ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4566](https://togithub.com/rollup/rollup/pull/4566): \[v3.0] Restructure timings ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4567](https://togithub.com/rollup/rollup/pull/4567): \[v3.0] Change default for makeAbsoluteExternalsRelative ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4568](https://togithub.com/rollup/rollup/pull/4568): \[v3.0] Change default for output.generatedCode.reservedNamesAsProps ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4574](https://togithub.com/rollup/rollup/pull/4574): \[v3.0] Better esm config file support ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4575](https://togithub.com/rollup/rollup/pull/4575): \[v3.0] Show deprecation warning for maxParallelFileReads ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4576](https://togithub.com/rollup/rollup/pull/4576): \[v3.0] Change default for preserveEntrySignatures to exports-only ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4579](https://togithub.com/rollup/rollup/pull/4579): \[v3.0] Refine errors and warnings ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4581](https://togithub.com/rollup/rollup/pull/4581): \[v3.0] Use named export for loadConfigFile ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4592](https://togithub.com/rollup/rollup/pull/4592): \[v3.0] Port doc changes from [#4572](https://togithub.com/rollup/rollup/issues/4572) and [#4583](https://togithub.com/rollup/rollup/issues/4583) to 3.0 ([@berniegp](https://togithub.com/berniegp))
- [#4593](https://togithub.com/rollup/rollup/pull/4593): \[v3.0] Browser build ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4596](https://togithub.com/rollup/rollup/pull/4596): \[v3.0] Use "node:" prefix for imports of node builtins ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4605](https://togithub.com/rollup/rollup/pull/4605): \[v3.0] Better sourcemap emission ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4609](https://togithub.com/rollup/rollup/pull/4609): \[v3.0] Custom awaiting watch emitter ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4611](https://togithub.com/rollup/rollup/pull/4611): \[v3.0] Improve interop defaults ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4621](https://togithub.com/rollup/rollup/pull/4621): \[v3.0] Always try to load config files via Node if possible ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4624](https://togithub.com/rollup/rollup/pull/4624): \[v3.0] Remove warning when using implicit default export mode ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4631](https://togithub.com/rollup/rollup/pull/4631): \[v3.0] Use ASCII characters for hash placeholders ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4644](https://togithub.com/rollup/rollup/pull/4644): \[v3.0] Improve performance of asset emissions ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4646](https://togithub.com/rollup/rollup/pull/4646): \[v3.0] Basic support for import assertions ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4647](https://togithub.com/rollup/rollup/pull/4647): \[v3.0] Keep dynamic imports in CommonJS output ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4649](https://togithub.com/rollup/rollup/pull/4649): \[v3.0] Change default for systemNullSetters ([@lukastaegert](https://togithub.com/lukastaegert))
- [#4651](https://togithub.com/rollup/rollup/pull/4651): \[v3.0] use compiler target ES2020 ([@dnalborczyk](https://togithub.com/dnalborczyk))
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
2.79.1
->3.15.0
Release Notes
rollup/rollup
### [`v3.15.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3150) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.14.0...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](https://togithub.com/rollup/rollup/issues/4842)) ##### Bug Fixes - Improve side effect detection in constructors ([#4842](https://togithub.com/rollup/rollup/issues/4842)) ##### Pull Requests - [#4842](https://togithub.com/rollup/rollup/pull/4842): fix: add this option to context.ignore ([@TrickyPi](https://togithub.com/TrickyPi)) - [#4843](https://togithub.com/rollup/rollup/pull/4843): fixed the logo link ([@oMatheuss](https://togithub.com/oMatheuss)) - [#4844](https://togithub.com/rollup/rollup/pull/4844): Update index.md ([@cunzaizhuyi](https://togithub.com/cunzaizhuyi)) - [#4845](https://togithub.com/rollup/rollup/pull/4845): docs: fix style ([@TrickyPi](https://togithub.com/TrickyPi)) ### [`v3.14.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3140) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.13.0...v3.14.0) *2023-02-05* ##### Features - Add `experimentalDeepDynamicChunkOptimization` option to produce fewer chunks from dynamic imports ([#4837](https://togithub.com/rollup/rollup/issues/4837)) ##### Pull Requests - [#4837](https://togithub.com/rollup/rollup/pull/4837): Add flag to re-enable deep dynamic chunk optimization ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4839](https://togithub.com/rollup/rollup/pull/4839): fix: correct incorrect assertions ([@TrickyPi](https://togithub.com/TrickyPi)) ### [`v3.13.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3130) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.12.1...v3.13.0) *2023-02-03* ##### Features - Prevent chunk cycles when using `experimentalMinChunkSize` ([#4723](https://togithub.com/rollup/rollup/issues/4723)) ##### Pull Requests - [#4723](https://togithub.com/rollup/rollup/pull/4723): Improve minChunkSize algorithm ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4833](https://togithub.com/rollup/rollup/pull/4833): docs: Fix typo ([@mturoci](https://togithub.com/mturoci)) - [#4835](https://togithub.com/rollup/rollup/pull/4835): Tables in docs ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.12.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3121) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.12.0...v3.12.1) *2023-02-01* ##### Bug Fixes - Handle self-references in class static blocks and construtors when the class is renamed ([#4827](https://togithub.com/rollup/rollup/issues/4827)) - Improve warnings when creating circular chunks taht reexport variables ([#4829](https://togithub.com/rollup/rollup/issues/4829)) ##### Pull Requests - [#4827](https://togithub.com/rollup/rollup/pull/4827): fix: use the original class name in the class body ([@TrickyPi](https://togithub.com/TrickyPi)) - [#4829](https://togithub.com/rollup/rollup/pull/4829): Improve and fix cross-chunk-reexport warning ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4830](https://togithub.com/rollup/rollup/pull/4830): Add Algolia doc search ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4831](https://togithub.com/rollup/rollup/pull/4831): Add warning not to add assets directly to the bundle ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.12.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3120) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.11.0...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](https://togithub.com/rollup/rollup/issues/4826)) ##### Pull Requests - [#4825](https://togithub.com/rollup/rollup/pull/4825): Add and use anchors for nested options ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4826](https://togithub.com/rollup/rollup/pull/4826): Use old namespace reexport code pattern for better Node support ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.11.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3110) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.10.1...v3.11.0) *2023-01-26* ##### Features - Support opt-in tree-shaking for emitted assets based on code references ([#4805](https://togithub.com/rollup/rollup/issues/4805)) ##### Bug Fixes - Adapt documentation references in Rollup to new website ([#4807](https://togithub.com/rollup/rollup/issues/4807)) ##### Pull Requests - [#4805](https://togithub.com/rollup/rollup/pull/4805): feat: add needsCodeReference field to EmittedAsset ([@TrickyPi](https://togithub.com/TrickyPi)) - [#4807](https://togithub.com/rollup/rollup/pull/4807): Rewrite website in Vitepress and merge it into the main repository ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4816](https://togithub.com/rollup/rollup/pull/4816): web-publisher: Update docs/faqs/index.md ([@PuruVJ](https://togithub.com/PuruVJ)) - [#4819](https://togithub.com/rollup/rollup/pull/4819): Replace fs-extra with built-ins ([@dnalborczyk](https://togithub.com/dnalborczyk)) - [#4820](https://togithub.com/rollup/rollup/pull/4820): Introduce timeout-minutes in Github actions ci ([@dnalborczyk](https://togithub.com/dnalborczyk)) - [#4822](https://togithub.com/rollup/rollup/pull/4822): Tweak document landing page ([@sapphi-red](https://togithub.com/sapphi-red)) - [#4823](https://togithub.com/rollup/rollup/pull/4823): Minor migration guide improvements ([@sapphi-red](https://togithub.com/sapphi-red)) - [#4824](https://togithub.com/rollup/rollup/pull/4824): Add most options to the REPL ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.10.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3101) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.10.0...v3.10.1) *2023-01-20* ##### Bug Fixes - Fix some crashes when using optional chaining with namespaces and improve tree-shaking ([#4812](https://togithub.com/rollup/rollup/issues/4812)) - Avoid wrongly removed code when using optional chaining ([#4812](https://togithub.com/rollup/rollup/issues/4812)) ##### Pull Requests - [#4809](https://togithub.com/rollup/rollup/pull/4809): fix: rollup bin file is in dist folder ([@saibotsivad](https://togithub.com/saibotsivad)) - [#4812](https://togithub.com/rollup/rollup/pull/4812): Rework tree-shaking support for optional chaining ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.10.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3100) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.9.1...v3.10.0) *2023-01-12* ##### Features - Add information about the resolving plugin to resolved ids ([#4789](https://togithub.com/rollup/rollup/issues/4789)) - Improve treeshaking for optional chaining when the root is nullish ([#4797](https://togithub.com/rollup/rollup/issues/4797)) ##### Bug Fixes - Remove unnecessary internal defaults for acorn options ([#4786](https://togithub.com/rollup/rollup/issues/4786)) ##### Pull Requests - [#4785](https://togithub.com/rollup/rollup/pull/4785): Use [@jridgewell/sourcemap-codec](https://togithub.com/jridgewell/sourcemap-codec) ([@bluwy](https://togithub.com/bluwy)) - [#4786](https://togithub.com/rollup/rollup/pull/4786): Remove default acorn options + other fixes ([@dnalborczyk](https://togithub.com/dnalborczyk)) - [#4789](https://togithub.com/rollup/rollup/pull/4789): feat: add `resolvedBy` field to `ResolvedId` ([@TrickyPi](https://togithub.com/TrickyPi)) - [#4794](https://togithub.com/rollup/rollup/pull/4794): fix: import can be shortened ([@cunzaizhuyi](https://togithub.com/cunzaizhuyi)) - [#4796](https://togithub.com/rollup/rollup/pull/4796): Update dependencies ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4797](https://togithub.com/rollup/rollup/pull/4797): feat: treeshake for optional chaining ([@antfu](https://togithub.com/antfu)) ### [`v3.9.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#391) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.9.0...v3.9.1) *2023-01-02* ##### Bug Fixes - Sort keys in generated dynamic namespace objects ([#4780](https://togithub.com/rollup/rollup/issues/4780)) - Do not consider Array.group to be side effect free as the specs have changed ([#4779](https://togithub.com/rollup/rollup/issues/4779)) ##### Pull Requests - [#4777](https://togithub.com/rollup/rollup/pull/4777): Import from node:fs/promises ([@dnalborczyk](https://togithub.com/dnalborczyk)) - [#4778](https://togithub.com/rollup/rollup/pull/4778): Bump deps ([@dnalborczyk](https://togithub.com/dnalborczyk)) - [#4779](https://togithub.com/rollup/rollup/pull/4779): Remove array grouping (web compat issue) ([@dnalborczyk](https://togithub.com/dnalborczyk)) - [#4780](https://togithub.com/rollup/rollup/pull/4780): Sort namespace object keys ([@dnalborczyk](https://togithub.com/dnalborczyk)) - [#4781](https://togithub.com/rollup/rollup/pull/4781): Use Set and builtin-modules package ([@dnalborczyk](https://togithub.com/dnalborczyk)) - [#4782](https://togithub.com/rollup/rollup/pull/4782): Use more restrictive types ([@dnalborczyk](https://togithub.com/dnalborczyk)) ### [`v3.9.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#390) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.8.1...v3.9.0) *2022-12-28* ##### Features - Support ES2022 arbitrary module namespace identifiers ([#4770](https://togithub.com/rollup/rollup/issues/4770)) - Add optional `version` property to plugin type ([#4771](https://togithub.com/rollup/rollup/issues/4771)) ##### Pull Requests - [#4768](https://togithub.com/rollup/rollup/pull/4768): Fix small typo in 999-big-list-of-options.md ([@ericmutta](https://togithub.com/ericmutta)) - [#4769](https://togithub.com/rollup/rollup/pull/4769): docs: add a instruction about how to run one test on your local computer ([@TrickyPi](https://togithub.com/TrickyPi)) - [#4770](https://togithub.com/rollup/rollup/pull/4770): Add support for arbitrary module namespace identifiers ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4771](https://togithub.com/rollup/rollup/pull/4771): Add `version` property to Plugin type ([@Septh](https://togithub.com/Septh)) ### [`v3.8.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#381) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.8.0...v3.8.1) *2022-12-23* ##### Bug Fixes - Reduce memory footprint when explicitly passing `cache: false` ([#4762](https://togithub.com/rollup/rollup/issues/4762)) - Fix a crash when preserving modules and reexporting namespaces ([#4766](https://togithub.com/rollup/rollup/issues/4766)) ##### Pull Requests - [#4762](https://togithub.com/rollup/rollup/pull/4762): Improve AST garbage collection ([@bluwy](https://togithub.com/bluwy)) - [#4766](https://togithub.com/rollup/rollup/pull/4766): Fix handling of namespace reexports when preserving modules ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.8.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#380) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.7.5...v3.8.0) *2022-12-22* ##### Features - Deduplicate ESM exports and reexports when preserving modules ([#4759](https://togithub.com/rollup/rollup/issues/4759)) ##### Bug Fixes - Handle files that are emitted as a side effect of the manualChunks option ([#4759](https://togithub.com/rollup/rollup/issues/4759)) ##### Pull Requests - [#4759](https://togithub.com/rollup/rollup/pull/4759): feat: deduplicate reexports and renderedExports to simplify output ([@TrickyPi](https://togithub.com/TrickyPi)) - [#4761](https://togithub.com/rollup/rollup/pull/4761): Support emitting files via manualChunks in output ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4763](https://togithub.com/rollup/rollup/pull/4763): docs: update outdated info ([@TrickyPi](https://togithub.com/TrickyPi)) ### [`v3.7.5`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#375) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.7.4...v3.7.5) *2022-12-17* ##### Bug Fixes - Avoid name shadowing when default exporting a class that matches the name of another class ([#4756](https://togithub.com/rollup/rollup/issues/4756)) - Do not display the error message both in a separate line and in the stack trace in rollup CLI ([#4749](https://togithub.com/rollup/rollup/issues/4749)) - Make type of `RollupWarning.cause` compatible with `Error.cause` ([#4757](https://togithub.com/rollup/rollup/issues/4757)) - Do not swallow side effects when interacting with modules namespaces nested in another object ([#4758](https://togithub.com/rollup/rollup/issues/4758)) ##### Pull Requests - [#4749](https://togithub.com/rollup/rollup/pull/4749): feat: simplify `stack` info in cli error ([@TrickyPi](https://togithub.com/TrickyPi)) - [#4756](https://togithub.com/rollup/rollup/pull/4756): Avoid name conflicts for default exported classes ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4757](https://togithub.com/rollup/rollup/pull/4757): fix: RollupLog cause allow unknown ([@Shinigami92](https://togithub.com/Shinigami92)) - [#4758](https://togithub.com/rollup/rollup/pull/4758): Correctly handle side effects when a namespace is nested in an object ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.7.4`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#374) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.7.3...v3.7.4) *2022-12-13* ##### Bug Fixes - Do not remove calls to `.exec` and `.test` for included stateful regular expressions ([#4742](https://togithub.com/rollup/rollup/issues/4742)) ##### Pull Requests - [#4742](https://togithub.com/rollup/rollup/pull/4742): fix: check whether RegExp have the global or sticky flags set ([@TrickyPi](https://togithub.com/TrickyPi)) ### [`v3.7.3`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#373) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.7.2...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](https://togithub.com/rollup/rollup/issues/4747)) ##### Pull Requests - [#4747](https://togithub.com/rollup/rollup/pull/4747): provide hashed file name when using this.getFileName in generateBundle ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.7.2`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#372) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.7.1...v3.7.2) *2022-12-10* ##### Bug Fixes - Improve chunk generation performance when one module is dynamically imported by many other modules ([#4736](https://togithub.com/rollup/rollup/issues/4736)) ##### Pull Requests - [#4736](https://togithub.com/rollup/rollup/pull/4736): Improve chunk assignment performance ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.7.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#371) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.7.0...v3.7.1) *2022-12-09* ##### Bug Fixes - Ad a hint to use [@rollup/plugin-json](https://togithub.com/rollup/plugin-json) when imports from a JSON file are not found ([#4741](https://togithub.com/rollup/rollup/issues/4741)) ##### Pull Requests - [#4741](https://togithub.com/rollup/rollup/pull/4741): fix: provide json hint when importing a no export json file ([@TrickyPi](https://togithub.com/TrickyPi)) ### [`v3.7.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#370) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.6.0...v3.7.0) *2022-12-08* ##### Features - Do not treat `.test` and `.exec` on regular expressions as side effects ([#4737](https://togithub.com/rollup/rollup/issues/4737)) ##### Pull Requests - [#4737](https://togithub.com/rollup/rollup/pull/4737): feat: add sutiable RegExp prototype methods ([@TrickyPi](https://togithub.com/TrickyPi)) ### [`v3.6.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#360) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.5.1...v3.6.0) *2022-12-05* ##### Features - extend `this.getModuleInfo` with information about exports ([#4731](https://togithub.com/rollup/rollup/issues/4731)) ##### Pull Requests - [#4731](https://togithub.com/rollup/rollup/pull/4731): feat: add `exports` and `exportedBindings` to `Module` class ([@TrickyPi](https://togithub.com/TrickyPi)) ### [`v3.5.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#351) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.5.0...v3.5.1) *2022-12-01* ##### Bug Fixes - Accept functions returning a config in defineConfig ([#4728](https://togithub.com/rollup/rollup/issues/4728)) ##### Pull Requests - [#4728](https://togithub.com/rollup/rollup/pull/4728): Overload defineConfig to accept a RollupOptionsFunction parameter ([@Septh](https://togithub.com/Septh)) ### [`v3.5.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#350) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.4.0...v3.5.0) *2022-11-27* ##### Features - Add `treeshake.manualPureFunctions` to override static analysis for explicit function names ([#4718](https://togithub.com/rollup/rollup/issues/4718)) ##### Bug Fixes - Do not throw when a plugin uses `this.load` without awaiting its result ([#4725](https://togithub.com/rollup/rollup/issues/4725)) ##### Pull Requests - [#4718](https://togithub.com/rollup/rollup/pull/4718): Add simple way to manually declare pure functions ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4725](https://togithub.com/rollup/rollup/pull/4725): Fix isIncluded error when using rollup-plugin-typescript2 ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.4.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#340) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.3.0...v3.4.0) *2022-11-22* ##### Features - Do not keep unused `Object.freeze` calls on object literals ([#4720](https://togithub.com/rollup/rollup/issues/4720)) ##### Pull Requests - [#4720](https://togithub.com/rollup/rollup/pull/4720): Only consider Object.freeze a side effect if the argument is used ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.3.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#330) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.2.5...v3.3.0) *2022-11-12* ##### Features - Add "experimentalMinChunkSize" option to merge smaller chunks into larger ones ([#4705](https://togithub.com/rollup/rollup/issues/4705)) - Automatically deduplicate assets again when the source is a `Buffer` ([#4712](https://togithub.com/rollup/rollup/issues/4712)) - Deduplicate `Buffer` with `string` assets ([#4712](https://togithub.com/rollup/rollup/issues/4712)) ##### Bug Fixes - Support plugins with object hooks when using `perf: true` ([#4707](https://togithub.com/rollup/rollup/issues/4707)) ##### Pull Requests - [#4702](https://togithub.com/rollup/rollup/pull/4702): docs: add additional tips for heap out of memory ([@benmccann](https://togithub.com/benmccann)) - [#4705](https://togithub.com/rollup/rollup/pull/4705): Allow to define minimum chunk size limit ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4707](https://togithub.com/rollup/rollup/pull/4707): Fix perf timers for object hooks ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4710](https://togithub.com/rollup/rollup/pull/4710): Update terser docs ([@nikolas](https://togithub.com/nikolas)) - [#4712](https://togithub.com/rollup/rollup/pull/4712): feat: deduplicate assets with buffer source ([@patak-dev](https://togithub.com/patak-dev)) ### [`v3.2.5`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#325) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.2.4...v3.2.5) *2022-11-01* ##### Bug Fixes - We deconflicting classes, ensure the original class name still does not shadow variables ([#4697](https://togithub.com/rollup/rollup/issues/4697)) ##### Pull Requests - [#4697](https://togithub.com/rollup/rollup/pull/4697): Prevent class ids from shadowing other variables ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.2.4`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#324) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.2.3...v3.2.4) *2022-10-31* ##### Bug Fixes - Always use forward slashes in chunk ids when preserving modules, even on Windows ([#4693](https://togithub.com/rollup/rollup/issues/4693)) - Escape problematic characters in ids when rewriting `import.meta.url` ([#4693](https://togithub.com/rollup/rollup/issues/4693)) ##### Pull Requests - [#4685](https://togithub.com/rollup/rollup/pull/4685): update package-lock version ([@jerry-lllman](https://togithub.com/jerry-lllman)) - [#4689](https://togithub.com/rollup/rollup/pull/4689): Update 07-tools.md ([@cokert](https://togithub.com/cokert)) - [#4693](https://togithub.com/rollup/rollup/pull/4693): Use correct import.meta.url slashes on Windows ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.2.3`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#323) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.2.2...v3.2.3) *2022-10-18* ##### Bug Fixes - Fix an issue whre Rollup confused `new.target` with `import.meta` ([#4679](https://togithub.com/rollup/rollup/issues/4679)) - Ensure that Rollup does not make assumptions about the value of unknown namespace import members ([#4684](https://togithub.com/rollup/rollup/issues/4684)) ##### Pull Requests - [#4679](https://togithub.com/rollup/rollup/pull/4679): Do not rewrite new.target ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4683](https://togithub.com/rollup/rollup/pull/4683): Remove typo in resolveId documentation ([@ChrispyChris](https://togithub.com/ChrispyChris)) - [#4684](https://togithub.com/rollup/rollup/pull/4684): Return correct values for unknown namespace members ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.2.2`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#322) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.2.1...v3.2.2) *2022-10-16* ##### Bug Fixes - Do not hang/crash on hashbang comments in input modules ([#4676](https://togithub.com/rollup/rollup/issues/4676)) ##### Pull Requests - [#4675](https://togithub.com/rollup/rollup/pull/4675): refactor: improve & simplify types ([@sxzz](https://togithub.com/sxzz)) - [#4676](https://togithub.com/rollup/rollup/pull/4676): Ignore hashhbang comments ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.2.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#321) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.2.0...v3.2.1) *2022-10-16* ##### Bug Fixes - Rewrite class declarations to preserve their .name property if necessary ([#4674](https://togithub.com/rollup/rollup/issues/4674)) ##### Pull Requests - [#4674](https://togithub.com/rollup/rollup/pull/4674): Preserve rendered class names ([@lukastaegert](https://togithub.com/lukastaegert)) ### [`v3.2.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#320) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.1.0...v3.2.0) *2022-10-15* ##### Features - Support providing Promises as plugins like Vite ([#4671](https://togithub.com/rollup/rollup/issues/4671)) ##### Pull Requests - [#4666](https://togithub.com/rollup/rollup/pull/4666): Add unicorn plugin ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4667](https://togithub.com/rollup/rollup/pull/4667): refactor: improve types ([@sxzz](https://togithub.com/sxzz)) - [#4668](https://togithub.com/rollup/rollup/pull/4668): fix: nested plugin in options stage ([@sxzz](https://togithub.com/sxzz)) - [#4669](https://togithub.com/rollup/rollup/pull/4669): refactor: merge duplicate imports ([@c0dedance](https://togithub.com/c0dedance)) - [#4670](https://togithub.com/rollup/rollup/pull/4670): docs: fix minor typo in migration documentation ([@ThisIsMissEm](https://togithub.com/ThisIsMissEm)) - [#4671](https://togithub.com/rollup/rollup/pull/4671): feat: support async plugins ([@sxzz](https://togithub.com/sxzz)) ### [`v3.1.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#310) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.0.1...v3.1.0) *2022-10-12* ##### Features - Support using arrays of plugins as plugins like Vite ([#4657](https://togithub.com/rollup/rollup/issues/4657)) ##### Pull Requests - [#4657](https://togithub.com/rollup/rollup/pull/4657): feat: support nested plugin ([@sxzz](https://togithub.com/sxzz)) ### [`v3.0.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#301) [Compare Source](https://togithub.com/rollup/rollup/compare/v3.0.0...v3.0.1) *2022-10-12* ##### Bug Fixes - Fix installation on Windows ([#4662](https://togithub.com/rollup/rollup/issues/4662)) - Avoid missing parameters that are only used in a destructuring initializer ([#4663](https://togithub.com/rollup/rollup/issues/4663)) ##### Pull Requests - [#4661](https://togithub.com/rollup/rollup/pull/4661): Enforce type imports ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4662](https://togithub.com/rollup/rollup/pull/4662): fix: missing "node" causes run script error ([@c0dedance](https://togithub.com/c0dedance)) - [#4663](https://togithub.com/rollup/rollup/pull/4663): Ensure the initializer of a destructuring declaration is always included if the id is included ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4664](https://togithub.com/rollup/rollup/pull/4664): fix: remove lint:js:nofix script redundancy options ([@c0dedance](https://togithub.com/c0dedance)) ### [`v3.0.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#300) [Compare Source](https://togithub.com/rollup/rollup/compare/v2.79.1...v3.0.0) *2022-10-11* ##### Breaking Changes ##### General Changes - Rollup now requires at least Node 14.18.0 to run ([#4548](https://togithub.com/rollup/rollup/issues/4548) and [#4596](https://togithub.com/rollup/rollup/issues/4596)) - The browser build has been split into a separate package `@rollup/browser` ([#4593](https://togithub.com/rollup/rollup/issues/4593)) - The node build uses the `node:` prefix for imports of builtin modules ([#4596](https://togithub.com/rollup/rollup/issues/4596)) - Some previously deprecated features have been removed ([#4552](https://togithub.com/rollup/rollup/issues/4552)): - Some plugin context functions have been removed: - `this.emitAsset()`: use `this.emitFile()` - `this.emitChunk()`: use `this.emitFile()` - `this.getAssetFileName()`: use `this.getFileName()` - `this.getChunkFileName()`: use `this.getFileName()` - `this.isExternal()`: use `this.resolve()` - `this.resolveId()`: use `this.resolve()` - The `resolveAssetUrl` plugin hook has been removed: use `resolveFileUrl` - Rollup no longer passes `assetReferenceId` or `chunkReferenceId` parameters to `resolveFileUrl` - The `treeshake.pureExternalModules` option has been removed: use `treeshake.moduleSideEffects: 'no-external'` - You may no longer use `true` or `false` for `output.interop`. As a replacement for `true`, 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 features that were previously marked for deprecation now show warnings when used ([#4552](https://togithub.com/rollup/rollup/issues/4552)): - Some options have been deprecated: - `inlineDynamicImports` as part of the input options: use `output. inlineDynamicImports` - `manualChunks` as part of the input options: use ` output. manualChunks ` - `maxParallelFileReads`: use \`maxParallelFileOps - `output.preferConst`: use `output.generatedCode.constBindings` - `output.dynamicImportFunction`: use the `renderDynamicImport` plugin hook - `output.namespaceToStringTag`: use `output.generatedCode.symbols` - `preserveModules` as part of the input options: use ` output. preserveModules ` - You should no longer access `this.moduleIds` in plugins: use `this.getModuleIds()` - You should no longer access `this.getModuleInfo(...).hasModuleSideEffects` in plugins: use `this.getModuleInfo(...).moduleSideEffects` - 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](https://togithub.com/rollup/rollup/issues/4574) and [#4621](https://togithub.com/rollup/rollup/issues/4621)) - The properties attached to some errors have been changed so that there are fewer different possible properties with consistent types ([#4579](https://togithub.com/rollup/rollup/issues/4579)) - Some errors have been replaced by others (ILLEGAL_NAMESPACE_REASSIGNMENT -> ILLEGAL_REASSIGNMENT, NON_EXISTENT_EXPORT -> MISSING_EXPORT) ([#4579](https://togithub.com/rollup/rollup/issues/4579)) - Files in `rollup/dist/*` can only be required using their file extension ([#4581](https://togithub.com/rollup/rollup/issues/4581)) - The `loadConfigFile` helper now has a named export of the same name instead of a default export ([#4581](https://togithub.com/rollup/rollup/issues/4581)) - When using the API and sourcemaps, sourcemap comments are contained in the emitted files and sourcemaps are emitted as regular assets ([#4605](https://togithub.com/rollup/rollup/issues/4605)) - Watch mode no longer uses Node's EventEmitter but a custom implementation that awaits Promises returned from event handlers ([#4609](https://togithub.com/rollup/rollup/issues/4609)) - Assets may only be deduplicated with previously emitted assets if their source is a `string` ([#4644](https://togithub.com/rollup/rollup/issues/4644)) - By default, Rollup will keep external dynamic imports as `import(…)` in commonjs output unless `output.dynamicImportInCjs` is set to false ([#4647](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4543)) - `entryFileNames/chunkFileNames` functions now longer have access to the rendered module information via `modules`, only to a list of included `moduleIds` ([#4543](https://togithub.com/rollup/rollup/issues/4543)) - The path of a module is no longer prepended to the corresponding chunk when preserving modules ([#4565](https://togithub.com/rollup/rollup/issues/4565)) - When preserving modules, the `[name]` placeholder (as well as the `chunkInfo.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](https://togithub.com/rollup/rollup/issues/4565)) - The `[ext]`, `[extName]` and `[assetExtName]` placeholders are no longer supported when preserving modules ([#4565](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4567)) - Change the default for `output.generatedCode.reservedNamesAsProps` to no longer quote properties like `default` by default ([#4568](https://togithub.com/rollup/rollup/issues/4568)) - Change the default for `preserveEntrySignatures` to "exports-only" so that by default, empty facades for entry chunks are no longer created ([#4576](https://togithub.com/rollup/rollup/issues/4576)) - Change the default for `output.interop` to "default" to better align with NodeJS interop ([#4611](https://togithub.com/rollup/rollup/issues/4611)) - Change the default for `output.esModule` to "if-default-prop", which only adds \__esModule when the default export would be a property ([#4611](https://togithub.com/rollup/rollup/issues/4611)) - Change the default for `output.systemNullSetters` to `true`, which requires at least SystemJS 6.3.3 ([#4649](https://togithub.com/rollup/rollup/issues/4649)) ##### Plugin API Changes - Plugins that add/change/remove imports or exports in `renderChunk` should make sure to update `ChunkInfo.imports/importedBindings/exports` accordingly ([#4543](https://togithub.com/rollup/rollup/issues/4543)) - The order of plugin hooks when generating output has changed ([#4543](https://togithub.com/rollup/rollup/issues/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 or `ChunkInfo.imports/importedBindings/exports` ([#4543](https://togithub.com/rollup/rollup/issues/4543) and [#4631](https://togithub.com/rollup/rollup/issues/4631)) - Hooks defined in output plugins will now run after hooks defined in input plugins (used to be the other way around) ([#3846](https://togithub.com/rollup/rollup/issues/3846)) ##### Features - Functions passed to `output.banner/footer/intro/outro` are now called per-chunk with some chunk information ([#4543](https://togithub.com/rollup/rollup/issues/4543)) - Plugins can access the entire chunk graph via an additional parameter in `renderChunk` ([#4543](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4543)) - The length of generated file hashes can be customized both globally and per-chunk ([#4543](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4565)) - `output.entryFileNames` now also supports the `[hash]` placeholder when preserving modules ([#4565](https://togithub.com/rollup/rollup/issues/4565)) - The `perf` option will now collect (synchronous) timings for all plugin hooks, not just a small selection ([#4566](https://togithub.com/rollup/rollup/issues/4566)) - All errors thrown by Rollup have `name: RollupError` now to make clearer that those are custom error types ([#4579](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4579)) - If sourcemaps are enabled, files will contain the appropriate sourcemap comment in `generateBundle` and sourcemap files are available as regular assets ([#4605](https://togithub.com/rollup/rollup/issues/4605)) - Returning a Promise from an event handler attached to a RollupWatcher instance will make Rollup wait for the Promise to resolve ([#4609](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4611)) - Rollup can statically resolve checks for `foo[Symbol.toStringTag]` to "Module" if foo is a namespace ([#4611](https://togithub.com/rollup/rollup/issues/4611)) - There is a new CLI option `--bundleConfigAsCjs` which will force the configuration to be bundled to CommonJS ([#4621](https://togithub.com/rollup/rollup/issues/4621)) - Import assertions for external imports that are present in the input files will be retained in ESM output ([#4646](https://togithub.com/rollup/rollup/issues/4646)) - Rollup will warn when a module is imported with conflicting import assertions ([#4646](https://togithub.com/rollup/rollup/issues/4646)) - Plugins can add, remove or change import assertions when resolving ids ([#4646](https://togithub.com/rollup/rollup/issues/4646)) - The `output.externalImportAssertions` option allows to turn off emission of import assertions ([#4646](https://togithub.com/rollup/rollup/issues/4646)) - Use `output.dynamicImportInCjs` to control if dynamic imports are emitted as `import(…)` or wrapped `require(…)` when generating commonjs output ([#4647](https://togithub.com/rollup/rollup/issues/4647)) ##### Bug Fixes - Chunk hashes take changes in `renderChunk`, e.g. minification, into account ([#4543](https://togithub.com/rollup/rollup/issues/4543)) - Hashes of referenced assets are properly reflected in the chunk hash ([#4543](https://togithub.com/rollup/rollup/issues/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](https://togithub.com/rollup/rollup/issues/4624)) - Avoid performance issues when emitting thousands of assets ([#4644](https://togithub.com/rollup/rollup/issues/4644)) ##### Pull Requests - [#3846](https://togithub.com/rollup/rollup/pull/3846): \[v3.0] Run output plugins last ([@aleclarson](https://togithub.com/aleclarson)) - [#4543](https://togithub.com/rollup/rollup/pull/4543): \[v3.0] New hashing algorithm that "fixes (nearly) everything" ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4548](https://togithub.com/rollup/rollup/pull/4548): \[v3.0] Deprecate Node 12 ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4552](https://togithub.com/rollup/rollup/pull/4552): \[v3.0] Remove actively deprecated features, show warnings for other deprecated features ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4558](https://togithub.com/rollup/rollup/pull/4558): \[v3.0] Convert build scripts to ESM, update dependencies ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4565](https://togithub.com/rollup/rollup/pull/4565): \[v3.0] Rework file name patterns when preserving modules ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4566](https://togithub.com/rollup/rollup/pull/4566): \[v3.0] Restructure timings ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4567](https://togithub.com/rollup/rollup/pull/4567): \[v3.0] Change default for makeAbsoluteExternalsRelative ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4568](https://togithub.com/rollup/rollup/pull/4568): \[v3.0] Change default for output.generatedCode.reservedNamesAsProps ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4574](https://togithub.com/rollup/rollup/pull/4574): \[v3.0] Better esm config file support ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4575](https://togithub.com/rollup/rollup/pull/4575): \[v3.0] Show deprecation warning for maxParallelFileReads ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4576](https://togithub.com/rollup/rollup/pull/4576): \[v3.0] Change default for preserveEntrySignatures to exports-only ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4579](https://togithub.com/rollup/rollup/pull/4579): \[v3.0] Refine errors and warnings ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4581](https://togithub.com/rollup/rollup/pull/4581): \[v3.0] Use named export for loadConfigFile ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4592](https://togithub.com/rollup/rollup/pull/4592): \[v3.0] Port doc changes from [#4572](https://togithub.com/rollup/rollup/issues/4572) and [#4583](https://togithub.com/rollup/rollup/issues/4583) to 3.0 ([@berniegp](https://togithub.com/berniegp)) - [#4593](https://togithub.com/rollup/rollup/pull/4593): \[v3.0] Browser build ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4596](https://togithub.com/rollup/rollup/pull/4596): \[v3.0] Use "node:" prefix for imports of node builtins ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4605](https://togithub.com/rollup/rollup/pull/4605): \[v3.0] Better sourcemap emission ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4609](https://togithub.com/rollup/rollup/pull/4609): \[v3.0] Custom awaiting watch emitter ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4611](https://togithub.com/rollup/rollup/pull/4611): \[v3.0] Improve interop defaults ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4621](https://togithub.com/rollup/rollup/pull/4621): \[v3.0] Always try to load config files via Node if possible ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4624](https://togithub.com/rollup/rollup/pull/4624): \[v3.0] Remove warning when using implicit default export mode ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4631](https://togithub.com/rollup/rollup/pull/4631): \[v3.0] Use ASCII characters for hash placeholders ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4644](https://togithub.com/rollup/rollup/pull/4644): \[v3.0] Improve performance of asset emissions ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4646](https://togithub.com/rollup/rollup/pull/4646): \[v3.0] Basic support for import assertions ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4647](https://togithub.com/rollup/rollup/pull/4647): \[v3.0] Keep dynamic imports in CommonJS output ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4649](https://togithub.com/rollup/rollup/pull/4649): \[v3.0] Change default for systemNullSetters ([@lukastaegert](https://togithub.com/lukastaegert)) - [#4651](https://togithub.com/rollup/rollup/pull/4651): \[v3.0] use compiler target ES2020 ([@dnalborczyk](https://togithub.com/dnalborczyk))Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.