rollup
Version:
Next-generation ES module bundler
1,630 lines (898 loc) • 227 kB
Markdown
# rollup changelog
## 2.62.0
_2021-12-24_
### Features
- Only resolve this.load once the code of the module is available (#4296)
- Mark additional string prototype methods as side-effect-free and correct typings of existing ones (#4299)
- Mark additional array prototype methods as side-effect-free and correct typings of existing ones (#4309)
- Expose if a module is included after tree-shaking in its ModuleInfo (#4305)
### Bug Fixes
- Fix how fsevents is included to improve watch mode on MacOS (#4312)
### Pull Requests
- [#4299](https://github.com/rollup/rollup/pull/4299): Add additional string prototype methods (@dnalborczyk)
- [#4300](https://github.com/rollup/rollup/pull/4300): Bump deps, fix expected test result for core-js (@dnalborczyk)
- [#4302](https://github.com/rollup/rollup/pull/4302): Replace type assertion with type guard (@dnalborczyk)
- [#4304](https://github.com/rollup/rollup/pull/4304): Re-use reserved names set (@dnalborczyk)
- [#4305](https://github.com/rollup/rollup/pull/4305): Expose isIncluded in module info (@william57m)
- [#4306](https://github.com/rollup/rollup/pull/4306): Fix git line breaks on windows (@dnalborczyk)
- [#4307](https://github.com/rollup/rollup/pull/4307): Add macos to pipeline (@dnalborczyk)
- [#4309](https://github.com/rollup/rollup/pull/4309): Add additional array prototype methods (@dnalborczyk)
- [#4311](https://github.com/rollup/rollup/pull/4311): Add Deno instructions to docs (@jespertheend)
- [#4312](https://github.com/rollup/rollup/pull/4312): fsevents integration (@dnalborczyk)
- [#4313](https://github.com/rollup/rollup/pull/4313): Remove non-existing static functions from known globals (@dnalborczyk)
## 2.61.1
_2021-12-11_
### Bug Fixes
- Only resolve this.load once the code of the module is available (#4296)
### Pull Requests
- [#4296](https://github.com/rollup/rollup/pull/4296): Make sure this.load waits for modules that are already loading (@lukastaegert)
- [#4298](https://github.com/rollup/rollup/pull/4298): use set for reserved words (@dnalborczyk)
## 2.61.0
_2021-12-09_
### Features
- Support ergonomic brand checks for private fields (#4293)
### Bug Fixes
- Improve handling of directory creation on systems with restrictive open files limit (#4288)
### Pull Requests
- [#4288](https://github.com/rollup/rollup/pull/4288): modifymkdirpath (@mgrabowski84)
- [#4293](https://github.com/rollup/rollup/pull/4293): bump deps (@dnalborczyk)
## 2.60.2
_2021-11-30_
### Bug Fixes
- Produce correct output when dynamic import paths contain quotes (#4286)
### Pull Requests
- [#4286](https://github.com/rollup/rollup/pull/4286): Escape dynamic import paths (@danielroe)
## 2.60.1
_2021-11-22_
### Bug Fixes
- Make sure virtual files have proper file extensions when preserving modules (#4270)
### Pull Requests
- [#4270](https://github.com/rollup/rollup/pull/4270): Use entryFileNames when generating filenames for virtual modules (@BPScott)
## 2.60.0
_2021-11-11_
### Features
- Add `this.load` context function to load, transform and parse modules without adding them to the graph (#4234)
- Sanitize non-url-safe characters in generated chunk names by default (#4262)
- Support ESM plugins via command line (#4265)
### Pull Requests
- [#4234](https://github.com/rollup/rollup/pull/4234): Plugin context function for pre-loading modules (@lukastaegert)
- [#4262](https://github.com/rollup/rollup/pull/4262): exclude invalid URL chars (@danielroe)
- [#4265](https://github.com/rollup/rollup/pull/4265): support loading ESM plugins from the CLI via --plugin (@kzc)
## 2.59.0
_2021-11-01_
### Features
- Support static class initialization blocks (#4249)
### Bug Fixes
- Fix an issue with the CommonJS plugin when module.exports has inherited properties (#4256)
### Pull Requests
- [#4236](https://github.com/rollup/rollup/pull/4236): typescript bug class field initialization order (@dnalborczyk)
- [#4249](https://github.com/rollup/rollup/pull/4249): Support for class static initialization block (@dnalborczyk and @lukastaegert)
- [#4256](https://github.com/rollup/rollup/pull/4256): Skip inherited properties in synthetic namespaces (@lukastaegert)
## 2.58.3
_2021-10-25_
### Bug Fixes
- Republish 2.58.1 with npm 6 as files were missing
## 2.58.2
_2021-10-25_
### Bug Fixes
- Republish 2.58.1 as files were missing
## 2.58.1
_2021-10-25_
### Bug Fixes
- Fix an issue with the CommonJS plugin when module.exports is falsy (#4247)
### Pull Requests
- [#4247](https://github.com/rollup/rollup/pull/4247): Handle falsy synthetic namespaces (@lukastaegert)
## 2.58.0
_2021-10-01_
### Features
- Add a flag to more reliably identify entry points in the `resolveId` hook (#4230)
### Pull Requests
- [#4230](https://github.com/rollup/rollup/pull/4230): Add isEntry flag to resolveId and this.resolve (@lukastaegert)
- [#4233](https://github.com/rollup/rollup/pull/4233): Remove unused rollup-plugin-typescript ambient module types (@dnalborczyk)
- [#4235](https://github.com/rollup/rollup/pull/4235): Update dependencies (@lukastaegert)
## 2.57.0
_2021-09-22_
### Features
- Add `generatedCode` option to allow Rollup to use es2015 features for smaller output and more efficient helpers (#4215)
- Improve AMD and SystemJS parsing performance by wrapping relevant functions in parentheses (#4215)
- Using `preferConst` will now show a warning with `strictDeprecations: true` (#4215)
### Bug Fixes
- Improve ES3 syntax compatibility by more consequently quoting reserved words as props in generated code (#4215)
- Do not use `Object.assign` in generated code to ensure ES5 compatibility without the need for polyfills (#4215)
- Support live-bindings in dynamic namespace objects that contain reexported external or synthetic namespaces (#4215)
- Use correct "this" binding in dynamic import expressions for CommonJS and AMD (#4215)
- Properly handle `shimMissingExports` for exports that are only used internally (#4215)
- Prevent unhandled rejection for failed module parsing (#4228)
### Pull Requests
- [#4212](https://github.com/rollup/rollup/pull/4212): chore: remove unused ambient types (@dnalborczyk)
- [#4215](https://github.com/rollup/rollup/pull/4215): Use ES2015 features in generated code snippets (@lukastaegert)
- [#4219](https://github.com/rollup/rollup/pull/4219): chore: bump rollup typescript, remove unused micromatch (@dnalborczyk)
- [#4220](https://github.com/rollup/rollup/pull/4220): chore: use forceConsistentCasingInFileNames in ts-config (@dnalborczyk)
- [#4224](https://github.com/rollup/rollup/pull/4224): prepare for useDefineForClassFields (@dnalborczyk)
- [#4228](https://github.com/rollup/rollup/pull/4228): fix: prevent UnhandledPromiseRejectionWarning when module resolution/parsing fails (@kherock)
## 2.56.3
_2021-08-23_
### Bug Fixes
- Make sure moduleInfo contains complete information about imported ids in the moduleParsed hook (#4208)
### Pull Requests
- [#4208](https://github.com/rollup/rollup/pull/4208): `ModuleInfo.importedIds` will return null if `resolvedIds[source]` is undefined (@FoxDaxian and @lukastaegert)
## 2.56.2
_2021-08-10_
### Bug Fixes
- Check if after simplification, an object pattern would become an expression statement or arrow function return value (#4204)
### Pull Requests
- [#4204](https://github.com/rollup/rollup/pull/4204): Do not create invalid code when simplifying object pattern assignments (@lukastaegert)
## 2.56.1
_2021-08-08_
### Bug Fixes
- Fix rendering of SystemJS export declarations initialized with a simplifiable expression (#4202)
### Pull Requests
- [#4202](https://github.com/rollup/rollup/pull/4202): Fix incorrect rendering of export declarations in SystemJS (@lukastaegert)
## 2.56.0
_2021-08-05_
### Features
- Create more efficient code for SystemJS exports (#4199)
- Extend `maxParallelFileReads` option to also throttle plugin load hooks (#4200)
### Bug Fixes
- Return correct value for postfix update expressions of exported variables (#4194)
### Pull Requests
- [#4199](https://github.com/rollup/rollup/pull/4199): Refine SystemJS export rendering (@lukastaegert)
- [#4200](https://github.com/rollup/rollup/pull/4200): Restrict parallel execution of load hook (@schummar)
## 2.55.1
_2021-07-29_
### Bug Fixes
- Improve CLI warning message for unused external imports (#4194)
### Pull Requests
- [#4194](https://github.com/rollup/rollup/pull/4194): Align batch warning for UNUSED_EXTERNAL_IMPORT to individual warning (@benmccann)
## 2.55.0
_2021-07-28_
### Features
- Support default export live-bindings when generating ESM output (#4182)
### Bug Fixes
- Always write `["default"]` as computed property when used as named export (#4182)
- Do not mask default export TDZ errors (#4182)
### Pull Requests
- [#4182](https://github.com/rollup/rollup/pull/4182): Use mutable bindings for default exports (@lukastaegert)
## 2.54.0
_2021-07-25_
### Features
- Extend UMD import.meta.url polyfill to support web workers (#4186)
### Bug Fixes
- Resolve an issue where certain uses of classes could lead to an infinite recursion (#4189)
### Pull Requests
- [#4186](https://github.com/rollup/rollup/pull/4186): Fix UMD import.meta.url inside web workers (@ceifa)
- [#4188](https://github.com/rollup/rollup/pull/4188): Fix typo in renderHelpers.ts (@eltociear)
- [#4189](https://github.com/rollup/rollup/pull/4189): Move long path recursion prevention to MemberExpression (@lukastaegert)
- [#4190](https://github.com/rollup/rollup/pull/4190): Stop recommending node-builtins (@curran)
## 2.53.3
_2021-07-21_
### Bug Fixes
- Solve an issue that could lead to severe memory issues and crashes when there are a lot of hoisted variables (#4183)
### Pull Requests
- [#4183](https://github.com/rollup/rollup/pull/4183): Avoid memory issues with hoisted variables (@lukastaegert)
## 2.53.2
_2021-07-15_
### Bug Fixes
- Identify additional TDZ situations in functions that are run more than once (#4177)
- Fix a scoping issue when a variable inside a catch scope matches the scope parameter's name (#4178)
### Pull Requests
- [#4177](https://github.com/rollup/rollup/pull/4177): Fix additional let/var init bugs (@kzc)
- [#4178](https://github.com/rollup/rollup/pull/4178): Correctly create outside variable when shadowed by catch parameter (@lukastaegert)
## 2.53.1
_2021-07-11_
### Bug Fixes
- Do not omit namespace reexports when `treeshake` is `false` (#4175)
### Pull Requests
- [#4175](https://github.com/rollup/rollup/pull/4175): Generate namespace objects when not tree-shaking (@lukastaegert)
## 2.53.0
_2021-07-09_
### Features
- Add `maxParallelFileReads` option to limit read operations with a default of 20 (#4170)
### Pull Requests
- [#4170](https://github.com/rollup/rollup/pull/4170): Limit parallel file reads to prevent "EMFILE: too many open files" error (@schummar)
## 2.52.8
_2021-07-07_
### Bug Fixes
- Automatically handle many use `var` before declaration and TDZ access scenarios correctly without the need for `treeshake.correctVarValueBeforeDeclaration` (#4148)
### Pull Requests
- [#4148](https://github.com/rollup/rollup/pull/4148): Fix var/const/let variable use before declaration (@kzc and @lukastaegert)
## 2.52.7
_2021-07-02_
### Bug Fixes
- Fix an issue where reassignments where not tracked through async function returns (#4163)
### Pull Requests
- [#4163](https://github.com/rollup/rollup/pull/4163): Deoptimize return values of async functions (@lukastaegert)
## 2.52.6
_2021-07-01_
### Bug Fixes
- Fix an issue where reassignments where not tracked through an await expression (#4162)
### Pull Requests
- [#4162](https://github.com/rollup/rollup/pull/4162): doptimize awaited expressions (@lukastaegert)
## 2.52.5
_2021-07-01_
### Bug Fixes
- Properly display parser errors not tied to a code location (#4160)
### Pull Requests
- [#4160](https://github.com/rollup/rollup/pull/4160): fix: max stack call error is caught on locate (@semoal)
## 2.52.4
_2021-06-30_
### Bug Fixes
- Fix an error when external namespaces are reexported across several files (#4159)
### Pull Requests
- [#4159](https://github.com/rollup/rollup/pull/4159): Properly handle double reexports from external namespaces (@lukastaegert)
## 2.52.3
_2021-06-25_
### Bug Fixes
- Fix an issue where code was wrongly removed when using vars in nested scopes (#4149)
### Pull Requests
- [#4149](https://github.com/rollup/rollup/pull/4149): Make sure the initializer of hoisted variables is deoptimized (@lukastaegert)
## 2.52.2
_2021-06-21_
### Bug Fixes
- Support falsy plugins in types (#4144)
- Do not require return value in renderChunkHook type (#4144)
### Pull Requests
- [#4144](https://github.com/rollup/rollup/pull/4144): Use TypeScript config and improve some types (@lukastaegert)
## 2.52.1
_2021-06-17_
### Bug Fixes
- Fix a memory leak in watch mode (#4142)
### Pull Requests
- [#4142](https://github.com/rollup/rollup/pull/4142): Make array and object prototype singletons immutable for now (@lukastaegert)
## 2.52.0
_2021-06-16_
### Features
- Add `--configPlugin` CLI option to apply plugins to the config file for e.g. TypeScript configs (#3835)
- Add "safest" and "smallest" presets to tree-shaking options for easier configuration (#4131)
- Add `treeshake.correctVarValueBeforeDeclaration` option to deoptimize `var` declarations (#4139)
### Pull Requests
- [#3835](https://github.com/rollup/rollup/pull/3835): Add typescript config support (@TheRealSyler)
- [#4131](https://github.com/rollup/rollup/pull/4131): Add presets to the tree-shaking options (@lukastaegert)
- [#4139](https://github.com/rollup/rollup/pull/4139): Add option to deoptimize var declarations for tree-shaking (@lukastaegert)
- [#4141](https://github.com/rollup/rollup/pull/4141): Update dependencies (@lukastaegert)
## 2.51.2
_2021-06-11_
### Bug Fixes
- Include modules imported from no-treeshake modules even if they would be empty (#4138)
### Pull Requests
- [#4138](https://github.com/rollup/rollup/pull/4138): Include all dependencies from modules with no-treeshake (@lukastaegert)
## 2.51.1
_2021-06-08_
### Bug Fixes
- Fix error when using `defineConfig` (#4134)
### Pull Requests
- [#4134](https://github.com/rollup/rollup/pull/4134): export `rollup.defineConfig` at runtime (@mshrtsr)
## 2.51.0
_2021-06-06_
### Features
- Add a helper for IntelliSense support in config files (#4127)
### Bug Fixes
- Improve performance when generating source maps (#4122)
### Pull Requests
- [#4122](https://github.com/rollup/rollup/pull/4122): User Map to optimize performance (@izevo)
- [#4127](https://github.com/rollup/rollup/pull/4127): Export defineConfig defines the auxiliary function of the configuration (@rxliuli)
## 2.50.6
_2021-06-03_
### Bug Fixes
- Do not consider the object spread operator as side effect when `propertyReadSideEffects` are false (#4119)
- Detect side effects when returning thenables from async arrow functions (#4120)
### Pull Requests
- [#4119](https://github.com/rollup/rollup/pull/4119): Respect propertyReadSideEffects in spread elements (@lukastaegert)
- [#4120](https://github.com/rollup/rollup/pull/4120): Detect async arrow thenable side effects (@lukastaegert)
## 2.50.5
_2021-05-30_
### Bug Fixes
- Detect side effects when accessing thenables (#4115)
### Pull Requests
- [#4114](https://github.com/rollup/rollup/pull/4114): use `colorette` instead of `turbocolor` (@ryuever)
- [#4115](https://github.com/rollup/rollup/pull/4115): Tracks side effects of thenables (@lukastaegert)
## 2.50.4
_2021-05-29_
### Bug Fixes
- Fix a situation where tree-shaking would stop including nodes prematurely (#4111)
- Track mutations and accessor side effects when using `__proto__` in an object literal (#4112)
- Check for getter effects when spreading an object (#4113)
### Pull Requests
- [#4111](https://github.com/rollup/rollup/pull/4111): Always request a new tree-shaking pass when deoptimizations of a node are first included (@lukastaegert)
- [#4112](https://github.com/rollup/rollup/pull/4112): Actually set the prototype when using a **proto** property (@lukastaegert)
- [#4113](https://github.com/rollup/rollup/pull/4113): Track access side effects when using object spread operator (@lukastaegert)
## 2.50.3
_2021-05-28_
### Bug Fixes
- Wrap parentheses around leading elements in simplified sequence expressions if this would otherwise lead to invalid code (#4110)
- Do not associate block soped variables in catch clauses with the clause parameter (#4108)
- Do not associate hoisted variables in catch clauses with outside variables if they match the parameter (#4108)
- Use correct "this" context for tagged template literal member expressions in simplified sequences (#4110)
### Pull Requests
- [#4108](https://github.com/rollup/rollup/pull/4108): Correctly handle catch declarations (@lukastaegert)
- [#4110](https://github.com/rollup/rollup/pull/4110): Invalid sequence expression simplification (@lukastaegert)
## 2.50.2
_2021-05-27_
### Bug Fixes
- Avoid unnecessary side effects when using methods like `.filter` and `.map` (#4103)
- Avoid crash when a module with moduleSideEffects no-treeshake imports a tree-shaken module (#4104)
### Pull Requests
- [#4103](https://github.com/rollup/rollup/pull/4103): Do not track side-effect-free array methods as side effects (@lukastaegert)
- [#4104](https://github.com/rollup/rollup/pull/4104): Fix crash when using inlineDynamicImports with no-treeshake (@lukastaegert)
## 2.50.1
_2021-05-26_
### Bug Fixes
- Do not associate pure annotations in simplified expressions with wrong elements (#4095)
- Prevent invalid code when simplified conditionals start with an IIFE function expression (#4099)
### Pull Requests
- [#4095](https://github.com/rollup/rollup/pull/4095): Correctly associate pure annotations and remove invalid ones (@lukastaegert)
- [#4099](https://github.com/rollup/rollup/pull/4099): Wrap leading function expression iifes in conditionals (@lukastaegert)
## 2.50.0
_2021-05-25_
### Features
- Only include last elements of comma expressions if they are used or have side effects (#4087)
### Bug Fixes
- Prevent a crash that could occur when calling object methods (#4091)
### Pull Requests
- [#4085](https://github.com/rollup/rollup/pull/4085): Switch to ESLint (@lukastaegert)
- [#4087](https://github.com/rollup/rollup/pull/4087): Drop unused last sequence element (@lukastaegert)
- [#4091](https://github.com/rollup/rollup/pull/4091): Prevent crash for recursive "this" deoptimization (@lukastaegert)
## 2.49.0
_2021-05-23_
### Features
- Detect side-effect-free static class methods and properties (#4018)
- Detect side-effect-free array elements (#4018)
- Do not apply deoptimizations from dead code (#4018)
### Bug Fixes
- Handle side effect detection for getters and setters added in untracked code (#4018)
- Track "this" mutations for methods, getters and setters (#4018)
### Pull Requests
- [#4018](https://github.com/rollup/rollup/pull/4018): Class method effects (@marijnh and @lukastaegert)
## 2.48.0
_2021-05-15_
### Features
- Add replacement to conditionally insert asset extensions in `entryFileNames` when preserving modules (#4077)
### Bug Fixes
- Fix crash when dynamically assigning to namespace members (#4070)
- Do not associate pure annotations in front of a semi-colon or comma with succeeding code (#4068)
### Pull Requests
- [#4068](https://github.com/rollup/rollup/pull/4068): ignore invalid trailing pure annotations (@kzc)
- [#4070](https://github.com/rollup/rollup/pull/4070): undefined `deoptimizePath` when the first element is empty string (@si3nloong)
- [#4071](https://github.com/rollup/rollup/pull/4071): add node.js v16 support (@dnalborczyk)
- [#4077](https://github.com/rollup/rollup/pull/4077): Add assetExtname replacement in entryFileNames (@BPScott)
- [#4080](https://github.com/rollup/rollup/pull/4080): Added Rollup logo in README.md (@priyanshurav)
- [#4081](https://github.com/rollup/rollup/pull/4081): fix comment regarding invalid annotation handling (@kzc)
## 2.47.0
_2021-05-04_
### Features
- Warn about ambiguous imports from combined external namespace reexports (#4064)
- In case of combined namespace reexports, always prefer local exports over external namespaces (#4064)
- Treat conflicting names in local namespace reexports as undefined (#4064)
### Pull Requests
- [#4064](https://github.com/rollup/rollup/pull/4064): Prefer locally defined exports and reexports over external namespaces (@lukastaegert)
## 2.46.0
_2021-04-29_
### Features
- Add option to disable file name sanitation (#4058)
- Add information about importers to unused external import warning (#4054)
### Pull Requests
- [#4042](https://github.com/rollup/rollup/pull/4042): Use Github actions only (@lukastaegert)
- [#4045](https://github.com/rollup/rollup/pull/4045): Fix REPL artefact branch reference (@lukastaegert)
- [#4046](https://github.com/rollup/rollup/pull/4046): Use codecov action for coverage (@lukastaegert)
- [#4054](https://github.com/rollup/rollup/pull/4054): Add to `UNUSED_EXTERNAL_IMPORT` warning information about the origin of the problem (@cawa-93)
- [#4058](https://github.com/rollup/rollup/pull/4058): Add sanitizeFileName option (@guybedford)
## 2.45.2
_2021-04-13_
### Bug Fixes
- Do not user a dynamic entry file name for naming a manual chunk (#4040)
### Pull Requests
- [#4040](https://github.com/rollup/rollup/pull/4040): Prioritize manual chunk name over dynamic entry id (@lukastaegert)
## 2.45.1
_2021-04-10_
### Bug Fixes
- Handle falsy return values from async plugin options hooks (#4039)
### Pull Requests
- [#4039](https://github.com/rollup/rollup/pull/4039): Do not fail when returning null or undefined from an async options hook (@lukastaegert)
## 2.45.0
_2021-04-09_
### Features
- Support private class instance methods and accessors (#4034)
### Pull Requests
- [#4034](https://github.com/rollup/rollup/pull/4034): feat: add support for private class methods (@dnalborczyk)
## 2.44.0
_2021-03-29_
### Features
- Add a new option `makeAbsoluteExternalsRelative` to opt out of renormalizing absolute external ids to relative ids (#4021)
- Extend the `resolveId` plugin hook to allow forcing or preventing renormalization of absolute external ids (#4021)
- Make the rendered code of individual modules available in the generated bundle (#4028)
### Bug Fixes
- Handle objects with `__proto__` properties correctly (#4019)
### Pull Requests
- [#4019](https://github.com/rollup/rollup/pull/4019): Deoptimize ObjectExpression when a `__proto__` property is present (@marijnh)
- [#4021](https://github.com/rollup/rollup/pull/4021): Improve absolute path handling (@lukastaegert)
- [#4026](https://github.com/rollup/rollup/pull/4026): chore: fix vscode launch config (change tdd to bdd) (@jameslahm)
- [#4027](https://github.com/rollup/rollup/pull/4027): Post comment for PRs from forks (@lukastaegert)
- [#4028](https://github.com/rollup/rollup/pull/4028): Expose rendered module code to generateBundle hook (@btd)
## 2.43.1
_2021-03-28_
### Bug Fixes
- Prevent infinite recursions in certain scenarios when calling object properties (#4025)
### Pull Requests
- [#4025](https://github.com/rollup/rollup/pull/4025): Handle recursive this mutation detection (@lukastaegert)
## 2.43.0
_2021-03-27_
### Features
- Track side effects of function properties in objects for better tree-shaking (#4011)
### Pull Requests
- [#4011](https://github.com/rollup/rollup/pull/4011): Disable pessimistic object deoptimization for calls when the called function doesn't ref this (@marijnh)
- [#4012](https://github.com/rollup/rollup/pull/4012): fix `sourcemap` reference in docs (@tjenkinson)
- [#4015](https://github.com/rollup/rollup/pull/4015): Use SIGTERM instead of SIGINT to kill test child processes in tests (@marijnh)
## 2.42.4
_2021-03-24_
### Bug Fixes
- Do not discard plugin return values when using perf option (#4010)
### Pull Requests
- [#4010](https://github.com/rollup/rollup/pull/4010): Return hook result inside promise with async timer end (@SuperOleg39)
## 2.42.3
_2021-03-22_
### Bug Fixes
- Do not ignore `#__PURE__` comments in front of optional chaining expressions (#4007)
### Pull Requests
- [#4007](https://github.com/rollup/rollup/pull/4007): Tree-shake pure call expressions with optional chaining (@lukastaegert)
## 2.42.2
_2021-03-22_
### Bug Fixes
- Use correct import.meta.url in relative imports from transpiled config files (#4005)
### Pull Requests
- [#4005](https://github.com/rollup/rollup/pull/4005): Use correct import.meta.url in config files (@lukastaegert)
## 2.42.1
_2021-03-20_
### Bug Fixes
- Do not produce unhandled Promise rejections when plugins throw while using the `perf` option (#4004)
### Pull Requests
- [#4004](https://github.com/rollup/rollup/pull/4004): Fixed unhandled promise rejections (@gluck)
## 2.42.0
_2021-03-19_
### Features
- Prevent infinite loops when several plugins are using `this.resolve` in their resolveId hook (#4000)
### Pull Requests
- [#4000](https://github.com/rollup/rollup/pull/4000): Break infinite loops in this.resolve (@lukastaegert)
## 2.41.5
_2021-03-18_
### Bug Fixes
- Make sure unused property accesses of external namespaces can be tree-shaken (#4001)
### Pull Requests
- [#4001](https://github.com/rollup/rollup/pull/4001): Do not count accessing members of an external namespace as side-effects (@lukastaegert)
## 2.41.4
_2021-03-16_
### Bug Fixes
- Do not replace external namespace imports with individual named imports to avoid changing behaviour with regard to missing exports (#3999)
### Pull Requests
- [#3999](https://github.com/rollup/rollup/pull/3999): Allow to safely probe external namespaces (@lukastaegert)
## 2.41.3
_2021-03-16_
### Bug Fixes
- Always retain arguments passed to empty object pattern parameters (#3998)
### Pull Requests
- [#3998](https://github.com/rollup/rollup/pull/3998): Do not create invalid code if a function argument is an empty object pattern (@lukastaegert)
## 2.41.3
_2021-03-16_
### Bug Fixes
- Always retain arguments passed to empty object pattern parameters (#3998)
### Pull Requests
- [#3998](https://github.com/rollup/rollup/pull/3998): Do not create invalid code if a function argument is an empty object pattern (@lukastaegert)
## 2.41.2
_2021-03-12_
### Bug Fixes
- Also remove sourcemaps comments if plugins return a pre-made ast (#3987)
### Pull Requests
- [#3987](https://github.com/rollup/rollup/pull/3987): Change removal of sourcemap comment (@yannayl)
## 2.41.1
_2021-03-11_
### Pull Requests
- [#3990](https://github.com/rollup/rollup/pull/3990): Add browser sourcemap and remove log (@lukastaegert)
## 2.41.0
_2021-03-09_
### Features
- Add option to `treeshake.propertyReadSideEffects` to keep all property accesses (#3985)
### Bug Fixes
- Also respect pure comment annotations when a plugin provides an AST in the transform hook provided they use this.parse (#3981)
### Pull Requests
- [#3981](https://github.com/rollup/rollup/pull/3981): Move pure comment annotation to Graph.contextParse (@yannayl)
- [#3985](https://github.com/rollup/rollup/pull/3985): implement --treeshake.propertyReadSideEffects=always to handle getters with side effects (@kzc)
## 2.40.0
_2021-02-26_
### Features
- Make sure that entry point variable names take precedence over variable names in dependencies when deconflicting (#3977)
### Bug Fixes
- Replace `:` in generated file names to prevent invalid files on Windows (#3972)
### Pull Requests
- [#3972](https://github.com/rollup/rollup/pull/3972): Don't allow `:` in file names (@lukastaegert)
- [#3976](https://github.com/rollup/rollup/pull/3976): Add soft breaks to guide to improve mobile experience (@lukastaegert)
- [#3977](https://github.com/rollup/rollup/pull/3977): Reverse module deconflicting order (@lukastaegert)
## 2.39.1
_2021-02-23_
### Bug Fixes
- Make sure local variables named Symbol, Object or Promise do not conflict with code generated by Rollup (#3971)
### Pull Requests
- [#3964](https://github.com/rollup/rollup/pull/3964): Remove extra word (@jamonholmgren)
- [#3971](https://github.com/rollup/rollup/pull/3971): Avoid conflicts with local variables named Symbol, Object, Promise (@lukastaegert)
## 2.39.0
_2021-02-12_
### Features
- Add "validate" option to verify generated chunks are valid JavaScript (#3952)
### Bug Fixes
- Always add exports properties for uninitialized named exports (#3957)
- Allow using an external namespace reexport together with named exports (#3959)
- Avoid invalid generated code in certain scenarios with SystemJS exports (#3960)
### Pull Requests
- [#3952](https://github.com/rollup/rollup/pull/3952): implement `validate` output option and `--validate` CLI option (@kzc)
- [#3956](https://github.com/rollup/rollup/pull/3956): Update dependencies, fix fsevents issue (@lukastaegert)
- [#3957](https://github.com/rollup/rollup/pull/3957): Make sure uninitialised exports turn up via .hasOwnProperty for non-ES formats (@lukastaegert)
- [#3959](https://github.com/rollup/rollup/pull/3959): Allow overriding individual exports of reexported external namespaces (@lukastaegert)
- [#3960](https://github.com/rollup/rollup/pull/3960): Make sure system exports are valid JavaScript (@lukastaegert)
## 2.38.5
_2021-02-05_
### Bug Fixes
- Prevent invalid code when simplifying assignments and delcarations (#3951)
- Prevent behaviour-changing line-breaks when simplifying assignments in return statements (#3951)
- Slightly improve white-space rendering when simplifying certain expressions (#3951)
### Pull Requests
- [#3951](https://github.com/rollup/rollup/pull/3951): Wrap simplified assignments if necessary (@lukastaegert)
## 2.38.4
_2021-02-02_
### Bug Fixes
- Do not change logic when tree-shaking declarations in if statements or loops (#3947)
### Pull Requests
- [#3947](https://github.com/rollup/rollup/pull/3947): Do not tear apart declarations in loop or if bodies (@lukastaegert)
## 2.38.3
_2021-02-01_
### Bug Fixes
- Prevent an unexpected live-binding when default exporting a synthetic named export (#3946)
### Pull Requests
- [#3945](https://github.com/rollup/rollup/pull/3945): Upgrade chokidar and fsevents for Apple M1 compatibility (@threepointone)
- [#3946](https://github.com/rollup/rollup/pull/3946): Make sure default exports snapshot synthetic named exports (@lukastaegert)
## 2.38.2
_2021-01-31_
### Bug Fixes
- Do not generate invalid code for partially tree-shaken declarations in for loops (#3943)
- Always include function bodies of functions in side-effect-free modules (#3944)
### Pull Requests
- [#3943](https://github.com/rollup/rollup/pull/3943): Do not partially tree-shake unused declarations in for loops (@lukastaegert)
- [#3944](https://github.com/rollup/rollup/pull/3944): Correctly include functions with side effects from side-effect-free modules (@lukastaegert)
## 2.38.1
_2021-01-28_
### Bug Fixes
- Fix internal error when resolving a missing entry point in the browser build (#3935)
### Pull Requests
- [#3935](https://github.com/rollup/rollup/pull/3935): fix: remove isolated resolve() for compat with browser distribution (@cmorten and @lukastaegert)
- [#3936](https://github.com/rollup/rollup/pull/3936): Ensure test after() callback is always executed (@Benjamin-Dobell)
- [#3937](https://github.com/rollup/rollup/pull/3937): Modernize references to other software (@ludofischer)
## 2.38.0
_2021-01-22_
### Features
- Entirely remove declared variables that only have an initializer side effect (#3933)
### Pull Requests
- [#3933](https://github.com/rollup/rollup/pull/3933): Tree-shake unused declarations while keeping initializer side-effects (@lukastaegert)
## 2.37.1
_2021-01-20_
### Pull Requests
- [#3929](https://github.com/rollup/rollup/pull/3929): Deduplicate acorn import (@lukastaegert)
## 2.37.0
_2021-01-19_
### Features
- Always check modules for side effects that only indirectly reexport a used variable (#3840)
- Warn if a circular dependency would cause wrong execution order when preserving modules (#3840)
### Bug Fixes
- Allow consuming synthetic exports via modules that reexport a namespace (#3894)
- Do not crash for circular default reexports (#3840)
- Do not crash for circular synthetic namespaces (#3840)
- Improve circular dependency execution order in certain scenarios (#3840)
### Pull Requests
- [#3840](https://github.com/rollup/rollup/pull/3840): Improve circular dependency execution order (@lukastaegert)
- [#3894](https://github.com/rollup/rollup/pull/3894): Always respect synthetic namespaces in namespace reexport (@lukastaegert)
## 2.36.2
_2021-01-16_
### Bug Fixes
- Fix an issue where invalid code was generated for unused assignments with side effects (#3926)
### Pull Requests
- [#3926](https://github.com/rollup/rollup/pull/3926): Correctly simplify assignments with parentheses (@lukastaegert)
## 2.36.1
_2021-01-06_
### Bug Fixes
- Solve issues that result in invalid code when partially removing assignments (#3921)
### Pull Requests
- [#3921](https://github.com/rollup/rollup/pull/3921): Prevent invalid code when removing assignment target of side-effectful object expression (@lukastaegert)
## 2.36.0
_2021-01-05_
### Features
- Support partial tree-shaking of chained assignments and unused assignment targets (#3919)
### Pull Requests
- [#3919](https://github.com/rollup/rollup/pull/3919): Treeshake chained assignment expressions (@lukastaegert)
## 2.35.1
_2020-12-14_
### Bug Fixes
- Allow closing the bundle when watching in case of generate errors by adding the bundle to the error event (#3909)
- Automatically close all bundles on generate errors when watching and using the CLI (#3909)
- Try to create remaining bundles when watching and one of them throws (#3909)
### Pull Requests
- [#3909](https://github.com/rollup/rollup/pull/3909): Forward bundle through watch error events (@lukastaegert)
## 2.35.0
_2020-12-14_
### Features
- Add `closeBundle` hook that is triggered by `bundle.close()` in the JS API (#3883)
### Pull Requests
- [#3883](https://github.com/rollup/rollup/pull/3883): Revert pattern to folder export (@intrnl)
## 2.34.2
_2020-12-06_
### Bug Fixes
- Revert pattern export change (#3898)
### Pull Requests
- [#3898](https://github.com/rollup/rollup/pull/3898): Revert pattern to folder export (@lukastaegert)
## 2.34.1
_2020-12-03_
### Bug Fixes
- Avoid Node deprecation warning by using a pattern export for nested Rollup files (#3896)
### Pull Requests
- [#3887](https://github.com/rollup/rollup/pull/3887): Run memory leak test on all systems (@lukastaegert)
- [#3892](https://github.com/rollup/rollup/pull/3892): Add pull_request to windows github actions (@shellscape)
- [#3893](https://github.com/rollup/rollup/pull/3893): Update dependencies (@lukastaegert)
- [#3896](https://github.com/rollup/rollup/pull/3896): Replace deprecated folder package export with pattern export (@lukastaegert)
## 2.34.0
_2020-11-29_
### Features
- Support RequireJS comaptible AMD ids in code-splitting builds via amd.autoId (#3867)
- Allow adding an AMD id base path (#3867)
### Bug Fixes
- Warn when using an constant AMD id in a code-splitting build (#3867)
### Pull Requests
- [#3867](https://github.com/rollup/rollup/pull/3867): Implement amd.autoId/amd.basePath options (@tjenkinson)
## 2.33.3
_2020-11-18_
### Bug Fixes
- Do not use `.js` extension when importing AMD files from a UMD bundle (#3872)
### Pull Requests
- [#3861](https://github.com/rollup/rollup/pull/3861): Update chat/support links (@shellscape)
- [#3872](https://github.com/rollup/rollup/pull/3872): Also removeExtensionFromRelativeAmdId in UMD finaliser (@tjenkinson)
## 2.33.2
_2020-11-14_
### Bug Fixes
- Fix an issue where statements were ignored after a conditional return in a labeled statement (#3871)
### Pull Requests
- [#3871](https://github.com/rollup/rollup/pull/3871): Correctly track label usage in try statements (@Amareis)
## 2.33.1
_2020-11-02_
### Bug Fixes
- Add `syntheticNamedExports` to `this.getModuleInfo` to align with documentation (#3847)
### Pull Requests
- [#3847](https://github.com/rollup/rollup/pull/3847): Expose syntheticNamedExports to ModuleInfo (@Amareis)
- [#3852](https://github.com/rollup/rollup/pull/3852): Fix typo on docs (@jpsc)
## 2.33.0
_2020-11-01_
### Features
- Add parameter to "watchChange" hook to denote if a change was an addition, update or deletion (#3841)
- Add "closeWatcher" hook to allow plugins to clean up resources when the watcher is closed (#3841)
- Add "this.getWatchFiles" function to plugin context to get the current set of watched files (#3841)
### Pull Requests
- [#3841](https://github.com/rollup/rollup/pull/3841): Improved watcher hooks (@Amareis)
- [#3848](https://github.com/rollup/rollup/pull/3848): Add options hook to asyncpluginhooks (@intrnl)
## 2.32.1
_2020-10-21_
### Bug Fixes
- Print warning location for plugin warnings if only `loc` is supplied (#3824)
### Pull Requests
- [#3824](https://github.com/rollup/rollup/pull/3824): plugin warnings not showing warning.loc (@luciotato)
## 2.32.0
_2020-10-16_
### Features
- Extend `preserveEntrySignatures` with a value `"exports-only"` to allow extension only if an entry does not have exports (#3823)
### Pull Requests
- [#3823](https://github.com/rollup/rollup/pull/3823): Add "exports-only" option to preserveSignature (@lukastaegert)
## 2.31.0
_2020-10-15_
### Features
- When using the `output.moduleToStringTag` option, also add the tag to entries with exports and simulated external namespaces (#3822)
- Add the `__esModule` interop marker to IIFE global variables unless `output.esModule` is turned off (#3822)
### Pull Requests
- [#3822](https://github.com/rollup/rollup/pull/3822): Add module toStringTag to entries and interop namespaces (@lukastaegert)
## 2.30.0
_2020-10-13_
### Features
- Add `moduleParsed` hook that is called for each module once code and AST are available (#3813)
- Include code and AST in `this.getModuleInfo` (#3813)
### Bug Fixes
- Provide the original Acorn AST instead of the internal one when resolving dynamic imports that contain non-trivial expressions (#3813)
### Pull Requests
- [#3813](https://github.com/rollup/rollup/pull/3813): Add moduleParsed plugin hook (@lukastaegert)
- [#3815](https://github.com/rollup/rollup/pull/3815): Docs: wile => while (@tjenkinson)
- [#3817](https://github.com/rollup/rollup/pull/3817): Docs: fix code snippet (@codefrau)
- [#3818](https://github.com/rollup/rollup/pull/3818): Update documentation on configuring Babel, removing the section on passing '{"modules": false}' as that is no longer needed since Babel 7 (@Robin-Hoodie)
## 2.29.0
_2020-10-08_
### Features
- Allow passing custom options to other plugins via `this.resolve` (#3807)
- Allow attaching custom meta information to modules when resolving, loading or transforming (#3807)
- Do not throw but return `null` when using `this.getModuleInfo` for an unknown id (#3807)
### Bug Fixes
- Trigger build in watch mode when files are added to a watched directory (#3812)
- Make `code` optional when transforming modules (#3807)
### Pull Requests
- [#3807](https://github.com/rollup/rollup/pull/3807): Implement new APIs for inter-plugin communication (@lukastaegert)
- [#3808](https://github.com/rollup/rollup/pull/3808): Document that the default value of --format is 'es' (@jameshfisher)
- [#3812](https://github.com/rollup/rollup/pull/3812): Watch: listen for new files added to a directory (@dmitrage)
## 2.28.2
_2020-09-24_
### Bug Fixes
- Fix a source of possible variable name conflicts when using preserveModules with SystemJS (#3796)
### Pull Requests
- [#3792](https://github.com/rollup/rollup/pull/3792): add documentation for output.PreserveModulesRoot (@davidroeca)
- [#3796](https://github.com/rollup/rollup/pull/3796): Fix SystemJS default variable conflict (@lukastaegert)
## 2.28.1
_2020-09-21_
### Bug Fixes
- Fix a path slash issue when using the preserveModulesRoot option on Windows (#3791)
### Pull Requests
- [#3791](https://github.com/rollup/rollup/pull/3791): Fix preserveModulesRoot path on Windows (@lukastaegert)
## 2.28.0
_2020-09-21_
### Features
- Add an option to treat modules at a given path as located at root when preserving modules (#3786)
### Pull Requests
- [#3786](https://github.com/rollup/rollup/pull/3786): Add preserveModulesRoot config option (@davidroeca)
## 2.27.1
_2020-09-17_
### Bug Fixes
- Do not fail when using ES module imports in symlinked config files (#3783)
### Pull Requests
- [#3783](https://github.com/rollup/rollup/pull/3783): Handle loading symlinked config files (@lukastaegert)
## 2.27.0
_2020-09-16_
### Features
- Support specifying a file extension when reading from stdin (#3775)
### Bug Fixes
- Do not break logic if a branch with hoisted variables is tree-shaken in an else-if statement (#3782)
### Pull Requests
- [#3770](https://github.com/rollup/rollup/pull/3770): Docs: Exception for babel plugin and commonjs plugin (@jsk7)
- [#3775](https://github.com/rollup/rollup/pull/3775): add ability to specify stdin file extension via --stdin=ext (@kzc)
- [#3782](https://github.com/rollup/rollup/pull/3782): Handle hoisted variables in dead branches of nested if statements (@lukastaegert)
## 2.26.11
_2020-09-08_
### Bug Fixes
- Do not fail for unknown nodes as if statement branches (#3769)
### Pull Requests
- [#3769](https://github.com/rollup/rollup/pull/3769): Handle debugger statements as if-statement branches (@lukastaegert)
## 2.26.10
_2020-09-04_
### Bug Fixes
- Do not create invalid code when simplifying expressions in return statements that contain line comments (#3762)
### Pull Requests
- [#3757](https://github.com/rollup/rollup/pull/3757): Fix api docs loadconfigfile (@maxwell8888)
- [#3762](https://github.com/rollup/rollup/pull/3762): Handle line-comments when removing line-breaks to prevent ASI (@lukastaegert)
## 2.26.9
_2020-09-01_
### Bug Fixes
- Add regular expression support to watch include/exclude types (#3754)
### Pull Requests
- [#3754](https://github.com/rollup/rollup/pull/3754): Add RegExp to the include and exclude fields of the WatcherOptions type (@dagda1)
- [#3756](https://github.com/rollup/rollup/pull/3756): Update FAQ: I think it was meant "external" instead of "other-entry.js" (@madacol)
## 2.26.8
_2020-08-29_
### Bug Fixes
- Make sure that both unresolved and resolved ids are passed to the `external` option in all cases (#3753)
### Pull Requests
- [#3753](https://github.com/rollup/rollup/pull/3753): Also pass resolved ids to external if they use the object for (@lukastaegert)
## 2.26.7
_2020-08-28_
### Bug Fixes
- Avoid invalid code when rendering hoisted variable declarations from dead branches (#3752)
- Mark the `options` parameter of `this.parse` as optional for TypeScript plugins (#3750)
### Pull Requests
- [#3750](https://github.com/rollup/rollup/pull/3750): Make `options` of `PluginContext#parse` optional (@intrnl)
- [#3752](https://github.com/rollup/rollup/pull/3752): Extract hoisted variables from dead branches (@lukastaegert)
## 2.26.6
_2020-08-27_
### Bug Fixes
- Avoid conflicts between the namespace of synthetic named exports and local variables (#3747)
### Pull Requests
- [#3747](https://github.com/rollup/rollup/pull/3747): Properly deconflict synthetic named exports (@lukastaegert)
## 2.26.5
_2020-08-22_
### Bug Fixes
- Use correctly deconflicted variable names for reexported namespaces in ES formats (#3742)
### Pull Requests
- [#3742](https://github.com/rollup/rollup/pull/3742): Avoid variable name conflict when reexporting several namespaces from a chunk (@lukastaegert)
## 2.26.4
_2020-08-19_
### Bug Fixes
- Fix a situation where invalid code was rendered when dynamically importing a module with synthetic named exports when preserving modules (#3738)
- Create a proper namespace object when in a non-es format, a namespace is imported from a chunk with `default` export mode (#3738)
- Use the same variable when in a chunk, a namespace is both imported and reexported as a binding (#3738)
- Do not include the synthetic namespace in static entry points unless it is actually used (#3738)
- Make sure the chunking of one output does not interfere with the namespace objects of another output (#3738)
### Pull Requests
- [#3738](https://github.com/rollup/rollup/pull/3738): Improve synthetic entry handling (@lukastaegert)
## 2.26.3
_2020-08-16_
### Bug Fixes
- Fix a situation where line-breaks in a nested simplified conditional expression could result in broken code (#3734)
### Pull Requests
- [#3734](https://github.com/rollup/rollup/pull/3734): Prevent ASI when simplifying a nested logical expression (@lukastaegert)
## 2.26.2
_2020-08-16_
### Bug Fixes
- Fix a situation where line-breaks in a simplified conditional expression could result in broken code (#3732)
### Pull Requests
- [#3732](https://github.com/rollup/rollup/pull/3732): Prevent unintended ASI for nested conditionals (@lukastaegert)
## 2.26.1
_2020-08-16_
### Bug Fixes
- Correctly render external namespace imports when only generating SystemJS output (#3731)
### Pull Requests
- [#3731](https://github.com/rollup/rollup/pull/3731): Render system namespace import (@sastan and @lukastaegert)
## 2.26.0
_2020-08-15_
### Features
- Add a new entry `importedBindings` to the bundle information to list bindings per dependency (#3722)
### Bug Fixes
- Do not render an invalid UMD wrapper when no bindings are imported from a dependency (#3724)
- Avoid situations where removing the `else` branch from an `if` statement might catch the `else` branch from another one (#3725)
### Pull Requests
- [#3722](https://github.com/rollup/rollup/pull/3722): Add import specifiers to bundle information (@lukastaegert)
- [#3724](https://github.com/rollup/rollup/pull/3724): Fix missing variables for UMD and IIFE builds (@lukastaegert)
- [#3725](https://github.com/rollup/rollup/pull/3725): Do not entirely remove else branch if another else branch might accidentally be referenced (@lukastaegert)
## 2.25.0
_2020-08-14_
### Features
- Add `--failAfterWarnings` CLI flag that will complete builds with warnings but return an error at the end (#3712)
### Pull Requests
- [#3712](https://github.com/rollup/rollup/pull/3712): Implement `--failAfterWarnings` flag (@tjenkinson)
## 2.24.0
_2020-08-13_
### Features
- Allow defining interop per dependency via a function (#3710)
- Support interop "auto" as a more compatible version of "true" (#3710)
- Support interop "default" and "esModule" to avoid unnecessary interop helpers (#3710)
- Support interop "defaultOnly" for simplified helpers and Node ESM interop compatible output (#3710)
- Respect interop option for external dynamic imports (#3710)
- Support live-bindings for external default imports in non-ES formats unless "externalLiveBindings" is "false" (#3710)
- Use shared default interop helpers for AMD, UMD and IIFE formats (#3710)
- Avoid unnecessarily deconflicted module variables in non-ES formats (#3710)
- Freeze generated interop namespace objects (#3710)
- Always mark interop helpers as pure (#3710)
- Avoid default export interop if there is already an interop namespace object (#3710)
- Sort all `require` statements to the top in CommonJS output for easier back-transpilation to ES modules by other tools (#3710)
### Bug Fixes
- Handle accessing `super` in static class fields (#3720)
- Deconflict the names of helper variables introduced for interop (#3710)
- Generate proper namespace objects for static namespace imports in non-ES formats (#3710)
- Do not add unused interop helpers when using the renderDynamicImport hook (#3710)
### Pull Requests
- [#3710](https://github.com/rollup/rollup/pull/3710): Rework interop handling (@lukastaegert)
- [#3720](https://github.com/rollup/rollup/pull/3720): Handle super in static class fields (@lukastaegert)
## 2.23.1
_2020-08-07_
### Bug Fixes
- Fix an issue where dynamically importing an entry point could return a malformed namespace for CJS and AMD formats (#3709)
### Pull Requests
- [#3709](https://github.com/rollup/rollup/pull/3709): Properly construct namespace when dynamically importing chunks with facades in default export mode (@lukastaegert)
## 2.23.0
_2020-07-23_
### Features
- Handle environments with only globalThis in UMD output (#3691)
### Pull Requests
- [#3691](https://github.com/rollup/rollup/pull/3691): Check for globalThis in UMD wrapper (@lukastaegert)
## 2.22.2
_2020-07-21_
### Bug Fixes
- Always generate correct exports when an implicit entry is reexporting from another module (#3688)
### Pull Requests
- [#3688](https://github.com/rollup/rollup/pull/3688): Include all relevant modules to generate reexports for implicit dependencies (@lukastaegert)
## 2.22.1
_2020-07-18_
### Bug Fixes
- Remove unused arguments when calling a conditional expression (#3680)
### Pull Requests
- [#3680](https://github.com/rollup/rollup/pull/3680): Allow tree-shaking of arguments of functions that are returned by conditional expressions (@lukastaegert)
## 2.22.0
_2020-07-18_
### Features
- Allow resolving synthetic named exports via an arbitrary export name (#3657)
- Display a warning when the user does not explicitly select an export mode and would generate a chunk with default export mode when targeting CommonJS (#3657)
### Pull Requests
- [#3657](https://github.com/rollup/rollup/pull/3657): Add basic support for using a non-default export for syntheticNamedExports (@lukastaegert)
- [#3659](https://github.com/rollup/rollup/pull/3659): Warn when implicitly using default export mode