- [#4401](https://github.com/rollup/rollup/pull/4401): Improve test stability by getting independent of module id ordering in more places (@lukastaegert)
- [#4371](https://github.com/rollup/rollup/pull/4371): refactor: use fs.promises in cli/run (@dnalborczyk)
- [#4372](https://github.com/rollup/rollup/pull/4372): refactor: use fs.promises in module loader (@dnalborczyk)
- [#4374](https://github.com/rollup/rollup/pull/4374): Ignore queries and hashes in file names when preserving modules (@lukastaegert)
- [#4375](https://github.com/rollup/rollup/pull/4375): Fix typo in \_config.js (@eltociear)
- [#4376](https://github.com/rollup/rollup/pull/4376): refactor: fs.promises, move mkdir to writeoutputfile, Part 3 (@dnalborczyk)
- [#4379](https://github.com/rollup/rollup/pull/4379): Deprecate hasModuleSideEffects in favor of moduleSideEffects and ensure it is mutable on ModuleInfo (@lukastaegert)
## 2.66.1
_2022-01-25_
### Bug Fixes
- Only warn for conflicting names in namespace reexports if it actually causes problems (#4363)
- Only allow explicit exports or reexports as synthetic namespaces and hide them from namespace reexports (#4364)
### Pull Requests
- [#4362](https://github.com/rollup/rollup/pull/4362): refactor: convert exportsByName object to map (@dnalborczyk)
- [#4363](https://github.com/rollup/rollup/pull/4363): Do not warn unnecessarily for namespace conflicts (@lukastaegert)
- [#4364](https://github.com/rollup/rollup/pull/4364): Do not expose synthetic namespace export in entries and namespaces (@lukastaegert)
## 2.66.0
_2022-01-22_
### Features
- Note if a module has a default export in ModuleInfo to allow writing better proxy modules (#4356)
- Add option to wait until all imported ids have been resolved when awaiting `this.load` (#4358)
### Pull Requests
- [#4356](https://github.com/rollup/rollup/pull/4356): Add hasDefaultExport to ModuleInfo (@lukastaegert)
- [#4358](https://github.com/rollup/rollup/pull/4358): Add "resolveDependencies" option to "this.load" (@lukastaegert)
## 2.65.0
_2022-01-21_
### Features
- Add complete import resolution objects to ModuleInfo for use in `this.load` (#4354)
### Bug Fixes
- Use correct context in plugin hooks with `perf: true` (#4357)
- [#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)
- [#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)
- 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)
- [#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)
- [#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)
- [#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)
- 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)
- [#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 (@lukastaegert)
## 2.21.0
_2020-07-07_
### Features
- Allow plugins to disable tree-shaking for individual modules to ensure even empty modules are associated with chunks (#3663)
### Pull Requests
- [#3663](https://github.com/rollup/rollup/pull/3663): Disable treeshaking per module (@lukastaegert)
## 2.20.0
_2020-07-06_
### Features
- Support using a function to generate different chunk and asset naming patterns per chunk or asset (#3658)
- Add `referencedFiles` property to the chunk info in generateBundle to list referenced assets (#3661)
### Pull Requests
- [#3658](https://github.com/rollup/rollup/pull/3658): Add ability to use a function that returns a pattern string in all places where you could use a pattern string before (@frank-dspeed)
- [#3661](https://github.com/rollup/rollup/pull/3661): Add referenced files to bundle (@lukastaegert)
## 2.19.0
_2020-07-05_
### Features
- Allow plugins to return a Promise in the options hook (#3660)
### Pull Requests
- [#3660](https://github.com/rollup/rollup/pull/3660): Make options hooks async (@TomerAberbach)
## 2.18.2
_2020-07-02_
### Bug Fixes
- Do not remove spread element args when the corresponding positional parameter is unused (#3652)
### Pull Requests
- [#3652](https://github.com/rollup/rollup/pull/3652): Do not tree-shake arguments that contain a spread element (@lukastaegert)
## 2.18.1
_2020-06-26_
### Bug Fixes
- Make sure synthetic exports are present when a module is imported dynamically (#3648)
- Strip the `rollup-plugin-` prefix off the plugin name when looking for the plugin export in a CLI plugin without a default export (#3647)
- Convert plugin names with dashes to camel case when looking for the plugin export in a CLI plugin without a default export (#3647)
### Pull Requests
- [#3647](https://github.com/rollup/rollup/pull/3647): Strip rollup-plugin prefix to find named plugin exports, throw when export cannot be found (@lukastaegert)
- [#3648](https://github.com/rollup/rollup/pull/3648): Always create a dynamic namespace object when a module with synthetic named exports is imported dynamically (@lukastaegert)
## 2.18.0
_2020-06-22_
### Features
-`inlineDynamicImports`, `manualChunks` and `preserveModules` can now be used as output options (#3645)
- Use sourcemaps for certain warnings that reference source code locations (#3645)
### Bug Fixes
-`this.getFileName` will now always return the correct file name for chunks when multiple outputs are created (#3645)
### Pull Requests
- [#3645](https://github.com/rollup/rollup/pull/3645): Per output chunking (@lukastaegert)
## 2.17.1
_2020-06-19_
### Bug Fixes
- Properly resolve accessing properties of namespace members again (#3643)
### Pull Requests
- [#3643](https://github.com/rollup/rollup/pull/3643): Fix accessing nested properties of namespaces (@lukastaegert)
## 2.17.0
_2020-06-17_
### Features
- When importing Rollup via package.exports, always fall back to the browser ESM build for non-Node environments (#3634)
- Create more efficient code when handling namespace mutations (#3637)
### Bug Fixes
- Fix a severe performance regression when the same module is imported by a lot of modules (#3641)
- Properly escape special characters in imports (#3638)
### Pull Requests
- [#3634](https://github.com/rollup/rollup/pull/3634): Set browser build in exports (@guybedford)
- [#3637](https://github.com/rollup/rollup/pull/3637): Do not include the whole namespace when illegally mutating a namespace (@lukastaegert)
- [#3638](https://github.com/rollup/rollup/pull/3638): Support backslash escaping, retain exact newline escaping (@guybedford)
- [#3641](https://github.com/rollup/rollup/pull/3641): Fix performance regression when a file is imported by many importers (@lukastaegert)
## 2.16.1
_2020-06-13_
### Bug Fixes
- Do not produce invalid code when an external or chunk id contain quotes or line-breaks (#3632)
- Do not fail but emit a warning when mutating a namespace object (#3633)
### Pull Requests
- [#3632](https://github.com/rollup/rollup/pull/3632): Handle single quote escaping in ids (@guybedford)
- [#3633](https://github.com/rollup/rollup/pull/3633): Turn namespace assignment error into a warning (@guybedford)
## 2.16.0
_2020-06-12_
### Features
- Add support for numeric separators (#3626)
- Switch to finalized ESTree optional chaining AST (#3628)
### Pull Requests
- [#3626](https://github.com/rollup/rollup/pull/3626): Support numeric separator (@TrySound)
- [#3631](https://github.com/rollup/rollup/pull/3631): Improve discoverability of `manualChunks` for code splitting (@zlamma)
## 2.15.0
_2020-06-08_
### Features
- Allow to skip watching some configs via `watch: false` (#3620)
- Provide the resolved sourcemap path to `sourcemapPathTransform` (#3617)
### Pull Requests
- [#3617](https://github.com/rollup/rollup/pull/3617): Update sourcemapPathTransform to also take the path to the sourcemap file as a second argument (@dgoldstein0)
- [#3620](https://github.com/rollup/rollup/pull/3620): Rollup watch only one config in exported array (@luwol03)
## 2.14.0
_2020-06-07_
### Features
- Make `this.meta.watchMode` available for plugins to detect watch mode (#3616)
### Bug Fixes
- Handle exporting the same binding with different names in SystemJS (#3575)
### Pull Requests
- [#3575](https://github.com/rollup/rollup/pull/3575): Handle some cases of duplicate export bindings (@joeljeske)
- [#3616](https://github.com/rollup/rollup/pull/3616): Make watch mode available in plugins (@lukastaegert)
## 2.13.1
_2020-06-04_
### Bug Fixes
- Prevent conflicts in SystemJS when `module` is used as a top-level variable (#3614)
### Pull Requests
- [#3614](https://github.com/rollup/rollup/pull/3614): Handle system reserved identifier dedupes (@guybedford)
## 2.13.0
_2020-06-03_
### Features
- Allow to specify that an emitted chunk is only loaded after a given module has loaded to improve chunking (#3606)
### Pull Requests
- [#3606](https://github.com/rollup/rollup/pull/3606): Enable specifying implicit dependencies when emitting chunks (@lukastaegert)
## 2.12.1
_2020-06-02_
### Bug Fixes
- Render valid imports when chunk names correspond to directory names in virtual setups (#3609)
### Pull Requests
- [#3609](https://github.com/rollup/rollup/pull/3609): Handle imports from chunks with names that correspond to parent directory names of other chunks (@guybedford)
## 2.12.0
_2020-05-31_
### Features
- Add an option `--waitForBundleInput` to let the build wait until all entry point files are available before starting (#3577)
### Pull Requests
- [#3577](https://github.com/rollup/rollup/pull/3577): Wait for bundle input option (@Heerschop)
## 2.11.2
_2020-05-28_
### Bug Fixes
- Include side-effects in the second argument of `Array.from` (#3604)
### Pull Requests
- [#3604](https://github.com/rollup/rollup/pull/3604): Mark `Array.from` as side-effectful, use two-argument Array.from when mapping Sets (@lukastaegert)
## 2.11.1
_2020-05-28_
### Bug Fixes
- Also include side-effects in files that are marked as side-effect-free if they contain an included default export that is reexported (#3602)
### Pull Requests
- [#3602](https://github.com/rollup/rollup/pull/3602): Handle side-effects next to side-effect-free default exports in case the default export is reexported (@lukastaegert)
## 2.11.0
_2020-05-27_
### Features
- Add basic support for optional chaining (#3582)
- Provide a normalized set of options with proper default values to `buildStart` and `renderStart` (#3597)
- Do not count adding properties to the prototype of an unused class as a side-effect (#3598)
- Support providing `null` for empty setters in SystemJS via option (#3592)
### Bug Fixes
- Do not fail when using a `/*#__PURE__*/` annotation inside a class field (#3599)
- Allow using `--watch` and `--treeshake` together with sub-options such as `--watch.clearScreen` on the command line (#3597)
### Pull Requests
- [#3582](https://github.com/rollup/rollup/pull/3582): Support optional chaining via acorn fork(@guybedford)
- [#3592](https://github.com/rollup/rollup/pull/3592): System format optional setters(@guybedford)
- [#3597](https://github.com/rollup/rollup/pull/3597): Provide normalized options (@lukastaegert)
- [#3598](https://github.com/rollup/rollup/pull/3598): Treeshake prototype modifications in classes (@lukastaegert)
- [#3599](https://github.com/rollup/rollup/pull/3599): Retain pure annotations in class fields (@lukastaegert)
- [#3601](https://github.com/rollup/rollup/pull/3601): Fix white-space in docs (@tu4mo)
## 2.10.9
_2020-05-24_
### Bug Fixes
- Prevent invalid exports when facades are created (#3590)
### Pull Requests
- [#3590](https://github.com/rollup/rollup/pull/3590): Prevent unneeded exports when entry facades are created and ensure all exported variables in facades are imported (@lukastaegert)
## 2.10.8
_2020-05-23_
### Bug Fixes
- Fix issues when synthetic named exports are reexported as default exports (#3586)
### Pull Requests
- [#3584](https://github.com/rollup/rollup/pull/3584): Clarify documentation for `output.paths` (@jacksteamdev)
- [#3585](https://github.com/rollup/rollup/pull/3585): Target Node.js v14 instead of v13 in Windows tests (@mangs)
- [#3586](https://github.com/rollup/rollup/pull/3586): Handle default reexports of synthetic named exports over several stages (@lukastaegert)
## 2.10.7
_2020-05-22_
### Bug Fixes
- Handle modules re-exporting namespaces without further own code (#3576)
### Pull Requests
- [#3576](https://github.com/rollup/rollup/pull/3576): Fix "cannot read exports of undefined" error (@guybedford)
## 2.10.6
_2020-05-22_
### Bug Fixes
- Fix some issues around class fields (#3580)
- Prevent a maximum call stack error when a called entity references itself in its declaration (#3581)
### Pull Requests
- [#3580](https://github.com/rollup/rollup/pull/3580): Update acorn class features (@guybedford)
- [#3581](https://github.com/rollup/rollup/pull/3581): Do not fail when including call arguments of recursively defined variables (@lukastaegert)
## 2.10.5
_2020-05-19_
### Bug Fixes
- Do not remove side-effects that may influence an included default export declaration when side-effects are disabled (#3572)
### Pull Requests
- [#3572](https://github.com/rollup/rollup/pull/3572): Observe side-effects in files containing a default export declaration that reexports a variable (@lukastaegert)
## 2.10.4
_2020-05-19_
### Bug Fixes
- Tree-shake unused classes with fields unless there are side-effects in the field declaration (#3569)
### Pull Requests
- [#3569](https://github.com/rollup/rollup/pull/3569): Make sure unused classes with fields are tree-shaken if possible (@lukastaegert)
## 2.10.3
_2020-05-18_
### Bug Fixes
- Validate return value of sourcemapPathTransform option (#3561)
### Pull Requests
- [#3561](https://github.com/rollup/rollup/pull/3561): Throw error if sourcemapPathTransform-option does not return a string (@Simonwep)
## 2.10.2
_2020-05-15_
### Bug Fixes
- Properly include calls to mutating array methods in certain scenarios (#3559)
### Pull Requests
- [#3559](https://github.com/rollup/rollup/pull/3559): Make sure UnknownFooExpressions are included when referenced as return values in a MultiExpression (@lukastaegert)
## 2.10.1
_2020-05-15_
### Bug Fixes
- Do not throw when "undefined" is used as a default export (#3558)
- Avoid unnecessary empty imports from a facade chunk to the original chunk (#3552)
- Pin facade creation order so that if several user-defined chunks reference the same module, the first always becomes the "actual" chunk while the later ones become facades (#3552)
### Bug Fixes
- Do not omit reexports from secondary chunks when creating facades for entry points without hoisting transitive dependencies (#3552)
- [#3542](https://github.com/rollup/rollup/pull/3542): Extend manualChunks API (@lukastaegert)
- [#3548](https://github.com/rollup/rollup/pull/3548): Support nullish coalescing with tree-shaking (@lukastaegert)
## 2.8.2
_2020-05-07_
### Bug Fixes
- Avoid invalid code when simplifying the body of a shorthand arrow function expression (#3540)
### Pull Requests
- [#3540](https://github.com/rollup/rollup/pull/3540): Wrap object expressions in parentheses if they become children of an arrow function expression (@lukastaegert)
## 2.8.1
_2020-05-07_
### Bug Fixes
- Allow using plugins on CLI that are exported as `exports.default` (#3529)
- Do not fail side-effect detection in nested callbacks of builtins (#3539)
### Pull Requests
- [#3529](https://github.com/rollup/rollup/pull/3529): Use default named export with plugins (@NotWoods)
- [#3539](https://github.com/rollup/rollup/pull/3539): Track call side-effects both by entity and CallExpression to avoid untracked side-effects in nested calls (@lukastaegert)
## 2.8.0
_2020-05-06_
### Features
- When a dynamically imported chunk contains more exports than the imported module namespace, do not create a facade chunk but an inline namespace (#3535)
### Bug Fixes
- Do not execute dynamically imported code before synchronous code in the importing module when generating CommonJS (#3535)
- Fix a type issue when a default export references a global variable (#3526)
### Pull Requests
- [#3526](https://github.com/rollup/rollup/pull/3526): Handles default exporting global variables (@lukastaegert)
## 2.7.5
_2020-04-29_
### Bug Fixes
- Prevent infinite loop when default values of function parameters in a default export contain a slash (#3522)
### Pull Requests
- [#3522](https://github.com/rollup/rollup/pull/3522): Avoid infinite loop when finding position for id insertion in default export (@lukastaegert)
## 2.7.4
_2020-04-29_
### Bug Fixes
- Fix an issue where wrong variable names were used when preserving modules (#3521)
### Pull Requests
- [#3521](https://github.com/rollup/rollup/pull/3521): Fix and improve default export alias logic (@lukastaegert)
## 2.7.3
_2020-04-27_
### Bug Fixes
- Do not access `__proto__` when running Rollup (#3518)
### Pull Requests
- [#3518](https://github.com/rollup/rollup/pull/3518): use acorn-class-fields and acorn-static-class-features from npm (@nitsky)
## 2.7.2
_2020-04-22_
### Bug Fixes
- Prevent an infinite loop when creating separate manual chunks with circular dependencies (#3510)
- Do not fail if "super" is used in the definition of a class field (#3511)
- Throw if a plugin tries to emit a file with an absolute Windows path (#3509)
### Pull Requests
- [#3509](https://github.com/rollup/rollup/pull/3509): Ban emitFile via absolute paths on Windows OS (@SASUKE40)
- [#3510](https://github.com/rollup/rollup/pull/3510): Do not fail for circular imports between manual chunks (@lukastaegert)
- [#3511](https://github.com/rollup/rollup/pull/3511): Support "super" in class fields (@lukastaegert)
## 2.7.1
_2020-04-21_
### Bug Fixes
- Use correct path for dynamic imports if `output.paths` is used (#3508)
### Pull Requests
- [#3508](https://github.com/rollup/rollup/pull/3508): Respect output.paths in dynamic imports (@lukastaegert)
## 2.7.0
_2020-04-21_
### Features
- Add `preserveEntrySignatures` option to control how exports of entry points are handled (#3498)
- Add `preserveSignature` flag to `this.emitFile` to control exports of emitted chunks (#3498)
- Add `output.minifyInternalExports` option to control if internal exports are minified (#3498)
### Pull Requests
- [#3498](https://github.com/rollup/rollup/pull/3498): Add option to configure if entry signatures are preserved (@lukastaegert)
## 2.6.1
_2020-04-12_
### Bug Fixes
- Close watch mode when stdin closes in a non-TTY environment (#3493)
### Pull Requests
- [#3493](https://github.com/rollup/rollup/pull/3493): Ensure --watch mode exits correctly when stdin is closed (@jakesgordon)
## 2.6.0
_2020-04-10_
### Features
- Allow regular expressions to declare external modules (#3482)
### Pull Requests
- [#3482](https://github.com/rollup/rollup/pull/3482): Allow regular expressions in config.external (@johannes-z)
## 2.5.0
This version is identical to 2.4.0
## 2.4.0
_2020-04-09_
### Features
- Add support for most private and public class field features (#3488)
### Bug Fixes
- Do not replace `this` with `undefined` in class field definitions (#3488)
### Pull Requests
- [#3488](https://github.com/rollup/rollup/pull/3488): Rollup class fields support (@guybedford and @lukastaegert)
## 2.3.5
_2020-04-09_
### Bug Fixes
- Never remove labels when tree-shaking is disabled (#3492)
### Pull Requests
- [#3492](https://github.com/rollup/rollup/pull/3492): Always use a new inclusion context when including declarations of variables, always inlcude labels when not treeshaking (@lukastaegert)
## 2.3.4
_2020-04-07_
### Bug Fixes
- Handle re-exporting synthetic exports from entry-points (#3319)
- Fix cross-chunk imports of synthetic exports (#3319)
- Handle namespace objects that contain re-exported synthetic namespaces (#3319)
### Pull Requests
- [#3319](https://github.com/rollup/rollup/pull/3319): Handle re-exports of synthetic named exports (@manucorporat and @lukastaegert)
## 2.3.3
_2020-04-04_
### Bug Fixes
- Add external namespaces to dynamic namespace objects (#3474)
### Pull Requests
- [#3474](https://github.com/rollup/rollup/pull/3474): Support external star exports on namespace objects (@guybedford)
## 2.3.2
_2020-03-31_
### Bug Fixes
- Only warn but do not fail build when a namespace is called as a function (#3475)
- Make sure pre-existing sourcemap comments are also removed when rebuilding using the cache (#3476)
### Pull Requests
- [#3475](https://github.com/rollup/rollup/pull/3475): Call namespace error as a warning (@guybedford)
- [#3476](https://github.com/rollup/rollup/pull/3476): Store locations for removed comments in cache (@lukastaegert)
## 2.3.1
_2020-03-30_
### Bug Fixes
- Do not fail if the config file returns an function returning a Promise (#3472)
### Pull Requests
- [#3472](https://github.com/rollup/rollup/pull/3472): Fix support for async functions as config (@lukastaegert)
## 2.3.0
_2020-03-29_
### Features
- Do not transpile config files with `.mjs` extension in Node 13+ or `.cjs` extension in any Node version and load them appropriately (#3445)
- Extract helper to load a config file the way rollup does it via `rollup/dist/loadConfigFile` (#3445)
### Bug Fixes
- Keep watching the config file if an error occurs during initial load in watch node (#3445)
- Add a helpful error message when using a transpiled config in a repository with "type": "module" (#3445)
### Pull Requests
- [#3445](https://github.com/rollup/rollup/pull/3445): Support native ESM configs in Node 13, support untranspiled configs (@lukastaegert)
- [#3468](https://github.com/rollup/rollup/pull/3468): Don't use esm output format alias in the documentation (@vsn4ik)
## 2.2.0
_2020-03-24_
### Features
- Add `renderDynamicImport` hook to rewrite dynamic import expressions (#3449)
- Add information about dynamically imported modules to `this.getModuleInfo` (#3449)
### Bug Fixes
- Make file emission work with Uin8Array sources when using Rollup in the browser (#3452)
- Fix types to allow watch to accept an array of configs (#3453)
- Do not strip `.js` extensions from AMD imports when the import is a user-supplied replacement for a non-resolvable dynamic import target (#3453)
### Pull Requests
- [#3449](https://github.com/rollup/rollup/pull/3449): Add hook to rewrite dynamic import expressions (@lukastaegert)
- [#3452](https://github.com/rollup/rollup/pull/3452): Avoid the assumption of Buffer in browser envs (@JoviDeCroock)
- [#3453](https://github.com/rollup/rollup/pull/3453): fix types since watch accepts single or array config (@lukeed)
- [#3456](https://github.com/rollup/rollup/pull/3456): fix SystemJS url in tutorial (@guybedford)
## 2.1.0
_2020-03-18_
### Features
- Allow specifying an importer when emitting files to resolve relative ids (#3442)
### Pull Requests
- [#3442](https://github.com/rollup/rollup/pull/3442): Add optional `importer` parameter to `this.emitFile` (@lukastaegert)
## 2.0.6
_2020-03-13_
### Bug Fixes
- Do not use file names from different outputs when generating sourcemaps using the `dir` option (#3440)
### Pull Requests
- [#3440](https://github.com/rollup/rollup/pull/3440): Use correct file names when writing sourcemaps for multiple outputs (@lukastaegert)
## 2.0.5
_2020-03-12_
### Bug Fixes
- Fix an issue where conditional statements would assume they have the wrong test value (#3438)
### Pull Requests
- [#3438](https://github.com/rollup/rollup/pull/3438): Make sure logical expressions always check the left argument for side-effects (@lukastaegert)
## 2.0.4
_2020-03-12_
### Bug Fixes
- Avoid conflicts between namespace imports when preserving modules (#3435)
### Pull Requests
- [#3435](https://github.com/rollup/rollup/pull/3435): Deconflict multiple `index` imports for ES format using nested export star statements (@kamranayub)
## 2.0.3
_2020-03-10_
### Bug Fixes
- Add type for this.getCombinedSourcemap to transform context (#3431)
### Pull Requests
- [#3377](https://github.com/rollup/rollup/pull/3377): Switch to yargs-parser lib (@jamesgeorge007)
- [#3426](https://github.com/rollup/rollup/pull/3426): Use strict types with PluginDriver (@NotWoods)
- [#3431](https://github.com/rollup/rollup/pull/3431): Add missing type declaration for getCombinedSourcemap (@Anidetrix)
- [#3432](https://github.com/rollup/rollup/pull/3432): Detail how return values from `augmentChunkHash` are used (@jakearchibald)
## 2.0.2
_2020-03-07_
### Bug Fixes
- Make sure the ESM import still works (#3430)
### Pull Requests
- [#3430](https://github.com/rollup/rollup/pull/3430): Fix conditional exports again (@lukastaegert)
## 2.0.1
_2020-03-07_
### Bug Fixes
- Reenable importing rollup in Node 13.0 - 13.7 (#3428)
- Rollup now requires at least Node 10 to run, or a sufficiently modern browser (#3346)
- The file structure of Rollup's ESM builds has changed:
- The main ESM entry point is now at `rollup/dist/es/rollup.js` instead of `rollup/dist/rollup.es.js`
- The ESM browser build is at `rollup/dist/es/rollup.browser.js` instead of `rollup/dist/rollup.browser.es.js`
In general, the ESM builds now follow the same naming scheme as the CJS builds but are located in the `rollup/dist/es` subfolder instead of `rollup/dist` (#3391)
- The "watch.chokidar" option no longer accepts a `boolean` value but only an object of parameters that is passed to the bundled Chokidar instance. Chokidar installations by the user will be ignored in favour of the bundled instance (#3331)
- Modules that are completely tree-shaken will no longer be listed as part of any chunks in `generateBundle`
- The `experimentalOptimizeChunks` and `chunkGroupingSize` options have been removed
- [acorn](https://github.com/acornjs/acorn) plugins can only be used if they accept a passed-in acorn instance instead of importing it themselves. See https://github.com/acornjs/acorn/pull/870#issuecomment-527339830 for what needs to be done to make plugins compatible that do not support this yet (#3391)
- Emitted chunks now have the TypeScript type `Uint8Array` instead of `Buffer`. A `Buffer` can still be used, though (#3395)
- The TypeScript types no longer use ESTree types for AST nodes but a very generic type that does not contain information specific to certain node types (#3395)
- The signature of the `writeBundle` plugin hook has been changed to match `generateBundle`: The bundle object is now passed as second parameter instead of first and the first parameter is the output options (#3361)
- The following plugin hooks have been removed:
- ongenerate: use `generateBundle` instead
- onwrite: use `writeBundle` instead
- transformBundle: use `renderChunk` instead
- transformChunk: use `renderChunk` instead
- You can no longer access `this.watcher` on the plugin context.
- The `transform` hook can no longer return `dependencies`.
- The `treeshake.pureExternalModules` option will now show a deprecation warning when used: use `treeshake.moduleSideEffects: 'no-external'` instead
- Using `import.meta.ROLLUP_ASSET_URL_<..>` and `import.meta.ROLLUP_CHUNK_URL_<..>` in code will now show warnings: use `import.meta.ROLLUP_FILE_URL_<..>` instead
- The `resolveAssetUrl` hook will now show a deprecation warning when used: use `resolveFileUrl` instead
- The following plugin context functions will show warnings when used:
-`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`
- Directly adding properties to the bundle object in the `generateBundle` is deprecated will show a warning (removing properties is allowed, though): Use `this.emitFile`
- Accessing `chunk.isAsset` on the bundle is deprecated: Use `chunk.type === 'asset'` instead
- The error code for a missing `name` property when targeting UMD has been changed to `MISSING_NAME_OPTION_FOR_IIFE_EXPORT` to emphasize this is needed for the IIFE part of UMD (#3393)
### Features
- Rollup now bundles [Chokidar](https://github.com/paulmillr/chokidar) for a better watch experience (#3331)
- Rollup now bundles [acorn](https://github.com/acornjs/acorn) again, removing its only external dependency (#3391)
- Do not consider empty imports from side-effect-free modules for chunking and hoist side-effect imports if necessary (#3369)
- Rollup can now be imported as an ES module in Node via `import {rollup} from 'rollup'`. Note that this relies on Node's experimental [conditional package exports](https://nodejs.org/dist/latest-v13.x/docs/api/esm.html#esm_conditional_exports) feature and is therefore itself experimental (#3391)
-`systemjs` can be used as format alias for `system` (#3381)
### Bug Fixes
- Unknown output options now trigger a warning when using the JavaScript API (#3352)
- Rollup will no longer introduce Node types into TypeScript projects that do not use them (#3395)
- Generate correct sourcemaps when tree-shaking occurs in a multi-file bundle (#3423)
- [#3318](https://github.com/rollup/rollup/pull/3318): Update magic-string and other dependencies (@lukastaegert)
## 1.27.14
_2019-12-22_
### Bug Fixes
- Update references to official rollup plugins in error messages (#3297, #3298)
### Pull Requests
- [#3286](https://github.com/rollup/rollup/pull/3286): Update link to JavaScript API documentation (@romankaravia)
- [#3294](https://github.com/rollup/rollup/pull/3294): Update deprecated references to the node-resolve plugin in the documentation (@Vlad-Shcherbina)
- [#3297](https://github.com/rollup/rollup/pull/3297): Update references to rollup-plugin-json (@cprecioso)
- [#3298](https://github.com/rollup/rollup/pull/3298): Update references to official rollup plugins (@cprecioso)
## 1.27.13
_2019-12-14_
### Bug Fixes
- Do not truncate environment variable values at the first colon when using the `--environment` option (#3283)
### Pull Requests
- [#3283](https://github.com/rollup/rollup/pull/3283): Allow environment variables to contain colons (@tlaverdure)
## 1.27.12
_2019-12-13_
### Bug Fixes
- Prevent invalid AMD or SystemJS code when accessing `import.meta` (#3282)
### Pull Requests
- [#3282](https://github.com/rollup/rollup/pull/3282): Always make "module" available for SystemJS and AMD formats if `import.meta` is accessed directly (@lukastaegert)
- Keep track of function return values in more situations (#3278)
### Pull Requests
- [#3278](https://github.com/rollup/rollup/pull/3278): Avoid some unnecessary value tracking deoptimizations (@lukastaegert)
## 1.27.9
_2019-12-07_
### Bug Fixes
- Fix an issue where reexports could be missing when preserving modules (#3273)
- Allow turning of color output via NO_COLOR or FORCE_COLOR=0 environment variables (#3272)
### Pull Requests
- [#3272](https://github.com/rollup/rollup/pull/3272): Support either NO_COLOR or FORCE_COLOR=0 to turn off color (@kikonen)
- [#3273](https://github.com/rollup/rollup/pull/3273): Make sure that indirectly reexported modules also become chunk dependencies when preserving modules(@lukastaegert)
## 1.27.8
_2019-12-02_
### Bug Fixes
- Deoptimize objects when a method is called on them to make sure modifications via "this" are observed (#3266)
### Pull Requests
- [#3266](https://github.com/rollup/rollup/pull/3266): Workaround for various object literal mutation bugs (@kzc)
## 1.27.7
_2019-12-01_
### Bug Fixes
- Fix a scenario where a reassignments to computed properties were not tracked (#3267)
- Fix an issue where live bindings were not working correctly when using `+=` in SystemJS (#3242)
### Pull Requests
- [#3242](https://github.com/rollup/rollup/pull/3242): Export updated assignments when using shorthand update assignment expressions in SystemJS (@lukastaegert)
## 1.27.1
_2019-11-18_
### Bug Fixes
- Fix an issue where code after a switch-statement with removed cases was erroneously not included (#3241)
### Pull Requests
- [#3237](https://github.com/rollup/rollup/pull/3237): make `acornOptions` optional in `parse()` in docs (@tjenkinson)
- [#3240](https://github.com/rollup/rollup/pull/3240): Update dependencies and fix vulnerability (@lukastaegert)
- [#3241](https://github.com/rollup/rollup/pull/3241): Do not truncate after switch-statement with removed case (@lukastaegert)
## 1.27.0
_2019-11-12_
### Features
- Add support for output-specific plugins (#3218)
- Reenable parallel output processing when using the CLI (#3218)
- Warn if files are emitted that would overwrite previously emitted files (#3218)
### Bug Fixes
- Do not overwrite files emitted in other builds if outputs are generated in parallel (#3218)
### Pull Requests
- [#3218](https://github.com/rollup/rollup/pull/3218): Per output plugins (@lukastaegert)
## 1.26.5
_2019-11-11_
### Bug Fixes
- Fix a regression where it was no longer to pass a certain option format to generate (#3223)
### Pull Requests
- [#3223](https://github.com/rollup/rollup/pull/3223): Allow passing input options to output (@lukastaegert)
## 1.26.4
_2019-11-09_
### Bug Fixes
- Keep watching known files after a plugin error during the initial build (#3219)
### Pull Requests
- [#3216](https://github.com/rollup/rollup/pull/3216): Fix small typo (@kaisermann)
- [#3217](https://github.com/rollup/rollup/pull/3217): Update dependencies and fix security vulnerability (@lukastaegert)
- [#3219](https://github.com/rollup/rollup/pull/3219): Also recover from plugin errors during the initial build (@lukastaegert)
## 1.26.3
_2019-11-02_
### Bug Fixes
- Work around an incompatibility with rollup-plugin-dts (#3211)
### Pull Requests
- [#3211](https://github.com/rollup/rollup/pull/3211): Do no fail if the source attribute is `undefined` in an unused named export (@lukastaegert)
## 1.26.2
_2019-10-31_
### Bug Fixes
- Do not create invalid code when using `treeshake: false` and star re-exports (#3209)
### Pull Requests
- [#3209](https://github.com/rollup/rollup/pull/3209): Also remove export-all declarations when not tree-shaking (@lukastaegert)
## 1.26.1
_2019-10-31_
### Bug Fixes
- Prevent an issue where outputs would overwrite files emitted by other outputs (#3201)
- Do not throw an error if the config file does not have a .js extension (#3204)
### Pull Requests
- [#3201](https://github.com/rollup/rollup/pull/3201): Make the CLI run generate/output in serial (@marijnh)
- [#3204](https://github.com/rollup/rollup/pull/3204): support all config file extensions (.js,.mjs,...) (@arlac77)
## 1.26.0
_2019-10-27_
### Features
- Only warn when no output is provided for an IIFE bundle but still produce valid code (#3181)
- Support reexporting namespaces as a binding (#3193)
- Switch from hash.js to crypto for hashing in the Node build for better performance and support for very large assets (#3194)
### Bug Fixes
- Correctly handle chunks reexporting the same namespace as two different bindings (#3193)
### Pull Requests
- [#3181](https://github.com/rollup/rollup/pull/3181): Remove the need to provide an output name for IIFE bundles (@bterrier)
- [#3193](https://github.com/rollup/rollup/pull/3193): Add support for "export \* as name from …" (@lukastaegert)
- [#3194](https://github.com/rollup/rollup/pull/3194): Add support for large assets (> 100 MB) (@SebastianNiemann)
## 1.25.2
_2019-10-23_
### Bug Fixes
- Improve performance of bundled UMD code by adding additional parentheses to enforce eager parsing (#3183)
- Improve types to tolerate passing a Rollup config with multiple outputs to `rollup.rollup` (#3184)
### Pull Requests
- [#3183](https://github.com/rollup/rollup/pull/3183): Add parentheses to factory function of UMD bundles (@ajihyf)
- [#3184](https://github.com/rollup/rollup/pull/3184): RollupOptions accept output as array (@imcotton)
## 1.25.1
_2019-10-20_
### Bug Fixes
- Handle a situation where code was not included after a switch statement (#3178)
- Handle a situation where code was not included after a do-while loop (#3180)
- Do not fail if different outputs emit the same file (#3175)
- Give access to the original acorn error for parse errors (#3176)
### Pull Requests
- [#3175](https://github.com/rollup/rollup/pull/3175): Disable errors for duplicate emitted file names (@marijnh)
- [#3176](https://github.com/rollup/rollup/pull/3176): Add original parser error to rollup error; Update tests (@gribnoysup)
- [#3178](https://github.com/rollup/rollup/pull/3178): Fix switch case not being included correctly (@lukastaegert)
- [#3134](https://github.com/rollup/rollup/pull/3134): Wire up --context CLI flag (@tchetwin)
- [#3135](https://github.com/rollup/rollup/pull/3135): Remove Symbol polyfill in module namespaces (@mkubilayk)
- [#3136](https://github.com/rollup/rollup/pull/3136): Set null prototype on namespace objects (@rpamely)
## 1.21.4
_2019-09-16_
### Bug Fixes
- Recognize common browser globals (#3117)
- Do not treat "typeof <global>" as a side-effect (#3117)
### Pull Requests
- [#3117](https://github.com/rollup/rollup/pull/3117): Add browser globals to known globals and prevent "typeof" side-effects (@lukastaegert)
## 1.21.3
_2019-09-14_
### Bug Fixes
- Fix a regression where modifying a watched file did not trigger a rebuild (#3112)
### Pull Requests
- [#3112](https://github.com/rollup/rollup/pull/3112): Fix .addWatchFile() dependencies failing to invalidate in watch mode (@tivac)
## 1.21.2
_2019-09-09_
### Bug Fixes
- Fix wrong deprecation message to direct to `this.emitFile` instead of `this.emitAsset`
## 1.21.1
_2019-09-09_
### Bug Fixes
- Allow legacy plugins to still add assets directly to the bundle object (#3105)
### Pull Requests
- [#3105](https://github.com/rollup/rollup/pull/3105): Allow legacy plugins to still add assets directly to the bundle object (@lukastaegert)
## 1.21.0
_2019-09-08_
### Features
- Respect `output.entryFileNames` when preserving modules (#3088)
- Make accessing unknown globals a side-effect unless this is deactivated via `treeshake.unknownGlobalSideEffects` (#3068)
- Respect global objects when checking for pure global functions (#3068)
- Introduce a `type` to more easily distinguish chunks and assets in the output bundle (#3080)
### Bug Fixes
- Recover in watch mode when the initial build fails (#3081)
- Make sure `output.strict` is respected for SystemJS output (#3101)
### Pull Requests
- [#3068](https://github.com/rollup/rollup/pull/3068): Make accessing unknown globals a side-effect (@lukastaegert)
- [#3080](https://github.com/rollup/rollup/pull/3080): OutputBundle Tagged union with 'type = chunk|asset' (@askbeka)
- [#3081](https://github.com/rollup/rollup/pull/3081): Watch files onbuild, even if build fails (@mhkeller)
- [#3088](https://github.com/rollup/rollup/pull/3088): Add support for entryFileNames pattern used in combination with preserveModules option (@Andarist)
- [#3101](https://github.com/rollup/rollup/pull/3101): Remove 'use strict'; from systemjs when strict=false (@askbeka)
## 1.20.3
_2019-08-28_
### Bug Fixes
- Make sure file hashes change when a change of the naming pattern leads to a file name change of a dependency (#3083)
- Fix several issues where reexporting an external "default" export could lead to invalid or incorrect code (#3084)
### Pull Requests
- [#3078](https://github.com/rollup/rollup/pull/3078): Add github actions workflow config for windows (@shellscape)
- [#3083](https://github.com/rollup/rollup/pull/3083): Properly reflect dependency file names in hash (@lukastaegert)
- [#3084](https://github.com/rollup/rollup/pull/3084): Fix "default" reexport issues in non ESM/System formats (@lukastaegert)
## 1.20.2
_2019-08-25_
### Bug Fixes
- Avoid an issue where circular namespace reexports would crash Rollup (#3074)
### Pull Requests
- [#3077](https://github.com/rollup/rollup/pull/3077): Handle namespaces that reexport themselves (@lukastaegert)
## 1.20.1
_2019-08-22_
### Bug Fixes
- Fix an issue where variable names inside dynamic import expressions were not rendered correctly (#3073)
- Fix type definition to allow a single watcher config as well as an array (#3074)
### Pull Requests
- [#3073](https://github.com/rollup/rollup/pull/3073): Fix wrong variable name in import expression (@lukastaegert)
- [#3074](https://github.com/rollup/rollup/pull/3074): Fixes type definition on watch and Watcher constructor (@MicahZoltu)
## 1.20.0
_2019-08-21_
### Features
- Add augmentChunkHash plugin hook to be able to reflect changes in renderChunk in the chunk hash (#2921)
### Bug Fixes
- Do not mutate the acorn options object (#3051)
- Make sure the order of emitted chunks always reflects the order in which they were emitted (#3055)
- Do not hang when there are strings containing comment-like syntax in some scenarios (#3069)
- [#3051](https://github.com/rollup/rollup/pull/3051): Avoid changes to the original options (.acorn) object (@LongTengDao)
- [#3052](https://github.com/rollup/rollup/pull/3052): Minor refactoring: Remove one try-catch (@KSXGitHub)
- [#3053](https://github.com/rollup/rollup/pull/3053): Refactor to use async-await in more places (@KSXGitHub)
- [#3055](https://github.com/rollup/rollup/pull/3055): Provide consistent chunking via a consistent order of entry modules when emitting chunks (@lukastaegert)
- [#3058](https://github.com/rollup/rollup/pull/3058): Remove acorn-bigint and acorn-dynamic-import from bundle (@LongTengDao)
- [#3061](https://github.com/rollup/rollup/pull/3061): Update to acorn@7 (@lukastaegert)
- [#3069](https://github.com/rollup/rollup/pull/3069): Prevent infinite loop when scanning for line-breaks and there are comment-like strings (@lukastaegert)
## 1.19.4
_2019-08-07_
### Bug Fixes
- Prevent invalid code when exporting an external namespace (#3034)
- Prevent invalid or non-equivalent code when simplifying expressions in return and throw statements (#3035)
### Pull Requests
- [#3034](https://github.com/rollup/rollup/pull/3034): Avoid generating .\* as export (@LongTengDao)
- [#3035](https://github.com/rollup/rollup/pull/3035): Prevent ASI errors for conditional expressions (@lukastaegert)
- [#3036](https://github.com/rollup/rollup/pull/3036): Fix documents to use https, not http (@giraffate)
## 1.19.3
_2019-08-06_
### Bug Fixes
- Fix wrong URLs in error messages (#3033)
### Pull Requests
- [#3033](https://github.com/rollup/rollup/pull/3033): Fix wrong URLs in error messages (@giraffate)
## 1.19.2
_2019-08-05_
### Bug Fixes
- Add bin file to package
## 1.19.1
_2019-08-05_
### Bug Fixes
- Remove wrong extension in package.json file (#3031)
- [#2955](https://github.com/rollup/rollup/pull/2955): Keep annotations and comments when simplifying logical and conditional expressions (@lukastaegert)
## 1.15.6
_2019-06-16_
### Bug Fixes
- No longer use an alternate screen in watch mode to allow scrolling (#2942)
- Prioritize non-external imports over external ones when resolving conflicting namespace re-exports (#2893)
### Pull Requests
- [#2893](https://github.com/rollup/rollup/pull/2893): Improve handling of conflicting namespace exports (@aleclarson)
- [#2942](https://github.com/rollup/rollup/pull/2942): Get rid of alternate screen and simplify screen clearing (@lukastaegert)
## 1.15.5
_2019-06-14_
### Bug Fixes
- Do not include any comments for completely tree-shaken files so that `renderedLength === 0` is a reliable check (#2940)
- Do not cause type errors when returning `null` from `resolveId` (#2941)
### Pull Requests
- [#2940](https://github.com/rollup/rollup/pull/2940): Completely omit files that do not have any included statements (@lukastaegert)
- [#2941](https://github.com/rollup/rollup/pull/2941): Explicitly allow null as return value for various hooks (@lukastaegert)
## 1.15.4
_2019-06-14_
### Bug Fixes
- Improve how asset and chunk URLs are resolved for UMD, IIFE and CJS output (#2937)
### Pull Requests
- [#2937](https://github.com/rollup/rollup/pull/2937): Fix URL resolution to work when the current script contains query parameters (@lukastaegert)
## 1.15.3
_2019-06-13_
### Bug Fixes
- Always reemit assets and chunks from cached transform hooks (#2936)
### Pull Requests
- [#2936](https://github.com/rollup/rollup/pull/2936): Fix repeated re-emission of files emitted from a transform hook (@lukastaegert)
## 1.15.2
_2019-06-13_
### Bug Fixes
- Make sure chunks emitted from transform hooks are also emitted for incremental builds in watch mode (#2933)
### Pull Requests
- [#2933](https://github.com/rollup/rollup/pull/2933): Reemit chunks emitted from transform hooks (@lukastaegert)
## 1.15.1
_2019-06-11_
### Bug Fixes
- Do not fail when reexporting variables in dynamic entry points from other chunks (#2928)
### Pull Requests
- [#2928](https://github.com/rollup/rollup/pull/2928): Handle reexports from dynamic entries across chunk (@lukastaegert)
## 1.15.0
_2019-06-11_
### Features
- Tone down try-catch deoptimization while maintaining polyfill support (#2918)
### Bug Fixes
- Handle feature detection with "typeof" for regular expressios (#2916)
- Deoptimize `'' + variable'` type coercion as expression statement for feature detection (#2917)
- Always observe argument side-effects when tree-shaking (#2924)
### Pull Requests
- [#2916](https://github.com/rollup/rollup/pull/2916): Deoptimize typeof for regular expression literals to better support es6-shim (@lukastaegert)
- [#2917](https://github.com/rollup/rollup/pull/2917): Support implicit type coercion errors in es5-shim (@lukastaegert)
- [#2918](https://github.com/rollup/rollup/pull/2918): Deoptimize try-catch less radically (@lukastaegert)
- [#2924](https://github.com/rollup/rollup/pull/2924): Do not tree-shake arguments with side-effects (@lukastaegert)
## 1.14.6
_2019-06-10_
### Bug Fixes
- Fix an issue where call arguments were not included in try statements (#2914)
### Pull Requests
- [#2914](https://github.com/rollup/rollup/pull/2914): Properly include try statements for each pass when deoptimization is deactivated (@lukastaegert)
## 1.14.5
_2019-06-09_
### Bug Fixes
- Keep external ids unmodified when using the object form of resolveId (#2907)
- Cache dynamic import resolutions when using Rollup cache (#2908)
- Keep all necessary parentheses when tree-shaking call arguments (#2911)
- [#2907](https://github.com/rollup/rollup/pull/2907): Do not renormalize external ids when using the object form (@lukastaegert)
- [#2908](https://github.com/rollup/rollup/pull/2908): Cache dynamic ids if possible (@lukastaegert)
- [#2911](https://github.com/rollup/rollup/pull/2911): Fix treeshaken parameters around parentheses (@manucorporat)
## 1.14.4
_2019-06-07_
### Bug Fixes
- Do not omit external re-exports for `moduleSideEffects: false` (#2905)
### Pull Requests
- [#2905](https://github.com/rollup/rollup/pull/2905): Make sure external re-exports are included for moduleSideEffects: false (@lukastaegert)
## 1.14.3
_2019-06-06_
### Bug Fixes
- Generate correct external imports when importing from a directory that would be above the root of the current working directory (#2902)
### Pull Requests
- [#2902](https://github.com/rollup/rollup/pull/2902): Use browser relative path algorithm for chunks (@lukastaegert)
## 1.14.2
_2019-06-05_
### Bug Fixes
- Prevent unnecessary inclusion of external namespace import in certain situations (#2900)
### Pull Requests
- [#2900](https://github.com/rollup/rollup/pull/2900): Handle early bind for member expressions (@lukastaegert)
## 1.14.1
_2019-06-05_
### Bug Fixes
- Fix an issue where try-statements were not included properly when a variable declared inside the statement was accessed outside it (#2898)
- Fix an issue where `await` expressions were not included properly (#2899)
### Pull Requests
- [#2898](https://github.com/rollup/rollup/pull/2898): Properly include try-catch-statements even if they have already been included in some way (@lukastaegert)
- [#2899](https://github.com/rollup/rollup/pull/2899): Fix unintended early return in await inclusion handling (@lukastaegert)
## 1.14.0
_2019-06-05_
### Features
- Deoptimize code inside and called from try-statements for feature detection (#2892)
- Avoid conflicts between top-level module, require etc. and CommonJS runtimes (#2889)
### Pull Requests
- [#2888](https://github.com/rollup/rollup/pull/2888): Enable full TypeScript strict mode (@lukastaegert)
- [#2889](https://github.com/rollup/rollup/pull/2889): Protect all module globals for CJS output from being redefined (@lukastaegert)
## 1.13.0
_2019-05-31_
### Features
- Omit `exports` and `module` from SystemJS wrapper if possible (#2880)
- Try to use the first letters of names when mangling exports (#2885)
### Bug Fixes
- Avoid conflicts with local variables when using format specific globals to render dynamic imports and file URLs (#2880)
- Do not produce undefined reexports when reexporting from entry points (#2885)
### Pull Requests
- [#2880](https://github.com/rollup/rollup/pull/2880): Deconflict global variables used inside format-specific code (@lukastaegert)
- [#2885](https://github.com/rollup/rollup/pull/2885): Do not produce undefined reexports when reexporting from entry points and refactor chunk linking (@lukastaegert)
## 1.12.5
_2019-05-30_
### Pull Requests
- [#2884](https://github.com/rollup/rollup/pull/2884): Update pluginutils for new micormatch and reduced bundle size (@lukastaegert)
## 1.12.4
_2019-05-27_
### Bug Fixes
- Show correct error stack trace for errors throw in "load" hooks (#2871)
### Pull Requests
- [#2875](https://github.com/rollup/rollup/pull/2875): Mention subfolders in docs (@lukastaegert)
- [#2871](https://github.com/rollup/rollup/pull/2871): Reserve error stack information (@LongTengDao)
## 1.12.3
_2019-05-19_
### Bug Fixes
- Prevent duplicate imports when exports are reexported as default exports (#2866)
- Fix an issue where a variable was imported twice under the same name (#2715)
### Pull Requests
- [#2715](https://github.com/rollup/rollup/pull/2715): Deduplicate imports referencing default exports and their original variables (@lukastaegert)
## 1.2.3
_2019-02-23_
### Bug Fixes
- Use correct path when rendering dynamic imports where the entry module is empty (#2714)
### Pull Requests
- [#2714](https://github.com/rollup/rollup/pull/2714): Properly render dynamic imports when imported module is empty (@lukastaegert)
## 1.2.2
_2019-02-19_
### Bug Fixes
- Fix wrong external imports when using the `paths` options only for some outputs (#2706)
### Pull Requests
- [#2706](https://github.com/rollup/rollup/pull/2706): Always recreate paths for external modules (@lukastaegert)
## 1.2.1
_2019-02-17_
### Bug Fixes
- Fix ESM version of Rollup (#2705)
### Pull Requests
- [#2705](https://github.com/rollup/rollup/pull/2705): Fix ESM version of Rollup (@lukastaegert)
## 1.2.0
_2019-02-17_
### Features
- Fewer renamed variables due to a completely reimplemented deconflicting logic (#2689)
### Bug Fixes
- Respect rendered and tree-shaken exports when determining chunk hashes (#2695)
- Fix an error when dynamic imports end up in the same chunk as one of their importees (#2677)
- Do not generate invalid code when expressions containing IIFEs are simplified (#2696)
- Do not throw an error when more than ten bundles are watched (#2700)
- Treat re-exported globals in a spec-compliant way (#2691)
- Fix issues related to wrongly renamed variables (#2689)
- Do not throw an error if config files contain non-default exports (#2673)
- Improve type of `RollupOutput.output` to guarantee at least one chunk (#2679)
### Pull Requests
- [#2673](https://github.com/rollup/rollup/pull/2673): Allow config files to have non-default exports (@swansontec)
- [#2677](https://github.com/rollup/rollup/pull/2677): Prevent final resolution and facade creation for inlined dynamic imports (@Rich-Harris and @lukastaegert)
- [#2679](https://github.com/rollup/rollup/pull/2679): Improve type of `RollupOutput.output` (@MattiasBuelens)
- Make sure the transform hook is always reevaluated when a file watched by the hook changes (#2633)
- Fix a crash when generating hashes for tree-shaken dynamic imports (#2638)
- Fix a crash and some inconsistencies when using the acorn-bigint plugin (#2640)
### Pull Requests
- [#2633](https://github.com/rollup/rollup/pull/2633): Document `this.addWatchFile` and make sure it also declares transform dependencies (@lukastaegert)
- [#2635](https://github.com/rollup/rollup/pull/2635): Make sure `code` is optional in warning type (@lukastaegert)
- [#2638](https://github.com/rollup/rollup/pull/2638): Do not fail when generating hashes for tree-shaken dynamic imports (@lukastaegert)
- [#2640](https://github.com/rollup/rollup/pull/2640): Always treat bigints as unknown (@lukastaegert)
- [#2641](https://github.com/rollup/rollup/pull/2641): Make sure all CLI options are listed in the summary (@lukastaegert)
## 1.0.1
_2019-01-03_
### Bug Fixes
- Properly handle reexporting an external default export for non-ESM targets when using named exports mode (#2620)
- Do not (wrongly) re-declare input options in the merged `RollupOptions` type (#2622)
### Pull Requests
- [#2620](https://github.com/rollup/rollup/pull/2620): Fixed issue with reexporting default as default with `{exports: named, interop: true}` options (@Andarist)
- In general, output options can no longer be used as input options (#2409)
-`bundle.generate` and `bundle.write` now return a new format (#2293)
- Several plugin hooks have become deprecated and will display warnings when used (#2409):
- transformBundle
- transformChunk
- ongenerate
- onwrite
- Plugin transform dependencies are deprecated in favour of using the `this.addWatchFile` plugin context function (#2409)
- Accessing `this.watcher` in plugin hooks is deprecated in favour of the `watchChange` plugin hook and the `this.addWatchFile` plugin context function (#2409)
- Using dynamic import statements will by default create a new chunk unless `inlineDynamicImports` is used (#2293)
- Rollup now uses acorn@6 which means that acorn plugins must be compatible with this version; acorn is now external for non-browser builds to make plugins work (#2293)
### Features
- The `--dir` ClI option can now be aliased as `-d` (#2293)
- The `--input` option now supports named entry points via `=` (#2293)
### Bug Fixes
- Both the `--input` option as well as the default CLI option now support named inputs (#2293)
### Pull Requests
- [#2293](https://github.com/rollup/rollup/pull/2293): Unify code paths for 1.0 relase and update documentation (@guybedford and @lukastaegert)
- [#2409](https://github.com/rollup/rollup/pull/2409): Remove old deprecated features and add new deprecation warnings (@guybedford)
- [#2486](https://github.com/rollup/rollup/pull/2486): Upgrade to acorn 6 (@marijnh)
- [#2611](https://github.com/rollup/rollup/pull/2611): Fix hook's name in test description (@Andarist)
- [#2612](https://github.com/rollup/rollup/pull/2612): Fix a self-contradicting comment in the docs (@LongTengDao)
## 0.68.2
_2018-12-23_
### Bug Fixes
- Do not assume hoisted variables to have been initialized (#2607)
### Pull Requests
- [#2607](https://github.com/rollup/rollup/pull/2607): Fix an issues where hoisted variables were assumed to have been initialized (@lye)
## 0.68.1
_2018-12-19_
### Bug Fixes
- Fix an issue with UMD wrappers where a variable is used without being defined (#2600)
### Pull Requests
- [#2600](https://github.com/rollup/rollup/pull/2600): Fix UMD and IIFE wrapper issues and add comprehensive functional wrapper tests (@lukastaegert)
## 0.68.0
_2018-12-16_
### Breaking Changes
-`optimizeChunks` is renamed to `experimentalOptimizeChunks` to reflect this feature is not production-ready yet (#2575)
### Features
- Plugins can iterate all module ids via `this.moduleIds` (#2565)
- Plugins can get graph information about a module via `this.getModuleInfo(id)` (#2565)
- Plugins and JS API users get more information about the generated chunks: `dynamicImports`, `facadeModuleId`, `isDynamicEntry`, `name` (#2575)
- Tree-shaken dynamic imports will no longer create chunks or influence chunking in any way (#2575)
- Dynamic imports will no longer follow the `entryFileNames` but the `chunkFileNames` property reflecting those are solely internally used (#2575)
- If there are chunk naming conflicts, entry chunks will always take precedence (#2575)
- If an entry facade is created, only the facade chunk is marked as `isEntry` (#2575)
- Dynamic chunks will only be marked as `isEntry` if they are actually entry chunks as well; thus there is now a 1-to-1 correspondence between modules listed in `input` and chunks marked as `isEntry` (#2575)
- Chunks no longer contain imports for variables that are tree-shaken in the chunk but used in other chunks (#2584)
- Chunks will always import re-exported variables directly from the chunk where they are originally exported from (#2584)
- Null characters will be pruned from chunk ids to allow for virtually created chunks and make `rollup-plugin-multi-entry` compatible with code-splitting and thus the upcoming 1.0 version (#2590)
- Simplify the UMD wrapper code as much as possible, especially if there are no exports (#2594)
- The UMD wrapper will now work in strict mode by checking for `self` before `this` when determining the global variable (#2594)
### Bug Fixes
- If a facade is created for a dynamic entry point, this facade will be imported instead of the facaded chunk (#2575)
- Manual chunks that include multiple entry points will have proper facades created for all entry points if necessary (#2575)
- If missing exports are shimmed, the shim variable will not be global but created on a per-module basis and is deconflicted with variables having the same name (#2584)
- Missing export shims work properly in SystemJS (#2584)
-`preserveModules` now handles dynamic namespace imports (#2584)
- Fix chunk execution order in certain scenarios (#2584)
- Exports and assignments using destructuring syntax will properly update the exported variables when generating SystemJS output (#2587)
- Hashes in chunk names will now also take dynamic imports into account (#2596)
### Pull Requests
- [#2565](https://github.com/rollup/rollup/pull/2565): Provide module graph information on the plugin context (@samccone)
- [#2575](https://github.com/rollup/rollup/pull/2575): Extend bundle information, tree-shake dynamic imports, fix dynamic import facade creation, support manual chunks with multiple entry points, make `optimizeChunks` experimental (@lukastaegert)
- [#2584](https://github.com/rollup/rollup/pull/2584): Prune tree-shaken chunk imports, fix missing export shimming, support dynamic namespaces when preserving modules, improve chunk execution order (@lukastaegert)
- [#2587](https://github.com/rollup/rollup/pull/2587): Support exports using destructuring declarations and assignments in SystemJS (@lukastaegert)
- [#2590](https://github.com/rollup/rollup/pull/2590): Make sure chunk ids do not contain invalid characters to allow for chunks to correspond to virtual modules (@lukastaegert)
- [#2594](https://github.com/rollup/rollup/pull/2594): Simplify UMD wrapper code and make sure it works in strict mode (@lukastaegert)
- [#2596](https://github.com/rollup/rollup/pull/2596): Take both static and dynamic dependencies into account when calculating hashes (@lukastaegert)
## 0.67.4
_2018-12-03_
### Bug Fixes
- Prevent corrupt source maps for files with very long lines (#2571)
### Pull Requests
- [#2571](https://github.com/rollup/rollup/pull/2571): Fix an issue with long lines in sourcemaps (@mislav)
## 0.67.3
_2018-11-17_
### Bug Fixes
- Make sure the ESM browser build is actually published to npm (#2560)
- Throw proper error when using `inlineDynamicImports` with `experimentalPreserveModules` (#2560)
### Pull Requests
- [#2552](https://github.com/rollup/rollup/pull/2552): Properly include ESM browser build in package (@lukastaegert)
- [#2560](https://github.com/rollup/rollup/pull/2560): Show proper error when using `inlineDynamicImports` with `experimentalPreserveModules` (@clarkdo)
## 0.67.2
_2018-11-17_
### Bug Fixes
- Prevent crash when not returning sourcemaps from `renderChunk` plugin hook (#2558)
### Pull Requests
- [#2558](https://github.com/rollup/rollup/pull/2558): Prevent crash when not returning sourcemaps from `renderChunk` (@kyle1320)
## 0.67.1
_2018-11-11_
### Bug Fixes
- Deconflict CLI entry points with same name but on different paths if no explicit naming is used (#2548)
### Pull Requests
- [#2548](https://github.com/rollup/rollup/pull/2548): Deconflict CLI entry points with same name but on different paths if no explicit naming is used (@lukastaegert)
## 0.67.0
_2018-11-04_
### Breaking Changes
none
### Features
- Do not resolve external dynamic imports via plugins to match the logic for static external imports again (#2505)
- Support virtual modules created by plugins when preserving modules (#2511)
- Add new `output.sourcemapExcludeSources` option to exclude the actual sources from sourcemaps (#2531)
### Bug Fixes
- Fix TypeScript type for sourcemaps (#2507)
- Fix order of external and inter-chunk imports to match the proper execution order (#2508)
- Do not tree-shake children of unknown nodes to e.g. properly handle do-expressions via acorn plugin (#2510)
- Prevent memory leak when using the bundle as cache (#2522)
- Fix mis-placed semicolons for certain SystemJS exports (#2529)
### Pull Requests
- [#2505](https://github.com/rollup/rollup/pull/2505): Do not resolve external dynamic imports via plugins (@lukastaegert)
- [#2507](https://github.com/rollup/rollup/pull/2507): Fix public sourcemap type (@aMarCruz)
- [#2508](https://github.com/rollup/rollup/pull/2508): Improve execution order of chunks and externals (@lukastaegert)
- [#2510](https://github.com/rollup/rollup/pull/2510): Do not tree-shake children of unknown nodes to e.g. properly handle do-expressions via acorn plugin (@devsnek)
- [#2511](https://github.com/rollup/rollup/pull/2511): Create chunks for virtual modules when preserving modules (@lukastaegert)
- [#2522](https://github.com/rollup/rollup/pull/2522): Prevent memory leak when using the bundle as cache (@kyle1320)
- [#2529](https://github.com/rollup/rollup/pull/2529): Fix mis-placed semicolons for certain SystemJS exports (@kyle1320)
- [#2531](https://github.com/rollup/rollup/pull/2531): add `sourcemapExcludeSources` option to exclude the source content from sourcemaps (@kitsonk)
## 0.66.6
_2018-10-10_
- Properly deconflict function and class declaration ids of reassigned default exports ([#2502](https://github.com/rollup/rollup/pull/2502))
## 0.66.5
_2018-10-09_
- Remove cache from memory once no longer needed ([#2496](https://github.com/rollup/rollup/pull/2496))
- Provide better error message when reexporting external namespace reexports ([#2499](https://github.com/rollup/rollup/pull/2499))
## 0.66.4
_2018-10-04_
- Fix links in warnings and errors ([#2471](https://github.com/rollup/rollup/pull/2471))
## 0.66.3
_2018-10-03_
- Detect side-effects in string.replace function arguments ([#2476](https://github.com/rollup/rollup/pull/2476))
- Make sure chunk ids are assigned before creating output bundle ([#2483](https://github.com/rollup/rollup/pull/2483))
- Use proper plugin name in error ([#2470](https://github.com/rollup/rollup/pull/2470))
- Update TypeScript version and fix type errors ([#2488](https://github.com/rollup/rollup/pull/2488))
## 0.66.2
_2018-09-21_
- Add additional information to parse errors messages in JSON and other non-JS files ([#2466](https://github.com/rollup/rollup/pull/2466))
- Ensure onwrite plugin hooks execute in sequence ([#2364](https://github.com/rollup/rollup/pull/2364))
- Always warn when no name is provided for a global module ([#2359](https://github.com/rollup/rollup/pull/2359))
- Add utility type for user created plugins ([#2355](https://github.com/rollup/rollup/pull/2355))
- Remove deprecated es6 format from types ([#2349](https://github.com/rollup/rollup/pull/2349))
- Mark inlineDynamicImports as optional in types ([#2348](https://github.com/rollup/rollup/pull/2348))
## 0.63.4
_2018-07-20_
- Use turbocolor instead of chalk ([#2339](https://github.com/rollup/rollup/pull/2339))
## 0.63.3
_2018-07-20_
- Handle expressions where "in" and "instanceof" are applied to primitive values ([#2344](https://github.com/rollup/rollup/pull/2344))
## 0.63.2
_2018-07-18_
- Fix bind order in for-of loops ([#2338](https://github.com/rollup/rollup/pull/2338))
## 0.63.1
_2018-07-18_
## 0.63.0
_2018-07-17_
- Fix many tree-shaking related issues ([#2315](https://github.com/rollup/rollup/pull/2315))
- Add experimental support for top-level await ([#2235](https://github.com/rollup/rollup/pull/2235))
- Prevent duplicate version printout in watch mode ([#2325](https://github.com/rollup/rollup/pull/2325))
- Respect error frames provided by plugins ([#2309](https://github.com/rollup/rollup/pull/2309))
- Add `esm` format alias to types ([#2327](https://github.com/rollup/rollup/pull/2327))
- Further unify internal test setup ([#2329](https://github.com/rollup/rollup/pull/2329))
## 0.62.0
_2018-06-27_
- Add option to automatically shim missing exports ([#2118](https://github.com/rollup/rollup/pull/2118))
- Inline dynamic imports that are also imported statically and only used in a single chunk ([#2295](https://github.com/rollup/rollup/pull/2295))
- Handle caching and invalidation of assets ([#2267](https://github.com/rollup/rollup/pull/2267))
- Fix plugin related types ([#2299](https://github.com/rollup/rollup/pull/2299))
## 0.61.2
_2018-06-23_
- Improve watcher error handling, only rebuild invalidated outputs ([#2296](https://github.com/rollup/rollup/pull/2296))
- Update dependencies, make watcher more stable ([#2297](https://github.com/rollup/rollup/pull/2297))
## 0.61.1
_2018-06-21_
- Do not try to deconflict "undefined" ([#2291](https://github.com/rollup/rollup/pull/2291))
- Properly track values for loop interator declarations and reassigned namespaces, add smoke test ([#2292](https://github.com/rollup/rollup/pull/2292))
## 0.61.0
_2018-06-20_
- Declare file dependencies via transform plugin hooks ([#2259](https://github.com/rollup/rollup/pull/2259))
- Handle undefined values when evaluating conditionals ([#2264](https://github.com/rollup/rollup/pull/2264))
- Handle known undefined properties when evaluating conditionals ([#2265](https://github.com/rollup/rollup/pull/2265))
- Access watch events via the plugin context ([#2261](https://github.com/rollup/rollup/pull/2261))
- Add option to suppress `__esModule` flag in output ([#2287](https://github.com/rollup/rollup/pull/2287))
- Fix issue when re-declaring variables, track reassignments in more cases ([#2279](https://github.com/rollup/rollup/pull/2279))
- Avoid conflicts for large numbers of variables ([#2244](https://github.com/rollup/rollup/pull/2244))
## 0.60.0
_2018-06-06_
- New plugin hooks: transformChunk, buildStart, buildEnd; extended plugin context with warn, error, resolveId, isExternal, emitAsset, setAssetSource and getAssetFileName available to any hook ([#2208](https://github.com/rollup/rollup/pull/2208))
- [BREAKING] Deprecate the `legacy` option and thus IE8 support ([#2141](https://github.com/rollup/rollup/pull/2141))
- Detect more known extensions and load .mjs without extension ([#2211](https://github.com/rollup/rollup/pull/2211))
- Do not emit empty chunks when code-splitting or empty files when preserving modules ([#2128](https://github.com/rollup/rollup/pull/2128))
- Support `import.meta.url` ([#2164](https://github.com/rollup/rollup/pull/2164))
- Add `esm` format alias ([#2102](https://github.com/rollup/rollup/pull/2102))
- Use alphanumeric base64 characters when deconflicting variables ([#2188](https://github.com/rollup/rollup/pull/2188))
- Improve handling of external modules imported as both default and named imports ([#2136](https://github.com/rollup/rollup/pull/2136))
- Properly deconflict named imports from other chunks ([#2177](https://github.com/rollup/rollup/pull/2177))
- Fix an issue with namespaces containing reexports ([#2157](https://github.com/rollup/rollup/pull/2157))
- Fix an issue with with incorrectly mapped default exports when code-splitting CJS or AMD modules ([#2178](https://github.com/rollup/rollup/pull/2178))
- Fix an issue with wrong paths of relative external imports ([#2160](https://github.com/rollup/rollup/pull/2160))
- Fix an issue when using default exports and `interop: false` ([#2149](https://github.com/rollup/rollup/pull/2149))
- Fix in issue with invalid syntax in SystemJS output ([#2187](https://github.com/rollup/rollup/pull/2187))
- Fix an issue when tree-shaking call expressions and reassigned variables ([#2186](https://github.com/rollup/rollup/pull/2186))
- Fix file paths in source maps ([#2161](https://github.com/rollup/rollup/pull/2161))
- Fix wrong file name in error message ([#2137](https://github.com/rollup/rollup/pull/2137))
- Always use npm 5 on CI ([#2185](https://github.com/rollup/rollup/pull/2185))
## 0.58.2
_2018-04-23_
- Fix rendering of certain statically resolvable if statements ([#2146](https://github.com/rollup/rollup/pull/2146))
- Completely update the treeshaking algorithm ([#1582](https://github.com/rollup/rollup/pull/1582))
- Only flip screen buffer if appropriate ([#1574](https://github.com/rollup/rollup/pull/1574))
- Guard against two instances creating the same dir ([#1576](https://github.com/rollup/rollup/pull/1576))
## 0.48.2
- Paths is an output option ([#1569](https://github.com/rollup/rollup/pull/1569))
## 0.48.1
- Print deprecation warnings in watch mode, and fix options when watcher restarts ([#1568](https://github.com/rollup/rollup/pull/1568))
## 0.48.0
- Numerous changes to the `options` object and CLI arguments ([#1479](https://github.com/rollup/rollup/issues/1479)). See [this gist](https://gist.github.com/Rich-Harris/d472c50732dab03efeb37472b08a3f32) for a rundown.
## 0.47.6
- Set `process.env.ROLLUP_WATCH`_before_ loading config file
## 0.47.5
- Fix broken multi-bundle configs with `rollup.watch` ([#1532](https://github.com/rollup/rollup/issues/1532))
## 0.47.4
- Delete cached config file before reloading in watch mode
- Batch warnings together in CLI output ([#1491](https://github.com/rollup/rollup/pull/1491))
- Clear screen between rebuilds in `--watch` mode ([#1491](https://github.com/rollup/rollup/pull/1491))
-`onwarn` function's second argument is the default handler, allowing easier filtering without reimplementing any logic ([#1491](https://github.com/rollup/rollup/pull/1491))
- Prevent semi-colon removal after variable declaration that is for loop body ([#1275](https://github.com/rollup/rollup/issues/1275))
- Return `exports` for namespaced but non-extended IIFE bundles ([#1492](https://github.com/rollup/rollup/issues/1492))
- Fix scoping in switch statements ([#1498](https://github.com/rollup/rollup/pull/1498))
- Handle side-effects in tagged template expressions ([#1508](https://github.com/rollup/rollup/pull/1508))
- More descriptive error for missing options.format ([#1510](https://github.com/rollup/rollup/pull/1510))
- Handle failure of a config in multi-config build ([#1513](https://github.com/rollup/rollup/issues/1513))
## 0.45.2
- Fix interop when import is a string ([#1486](https://github.com/rollup/rollup/issues/1486))
- Separate `resolvedIds` from `resolvedExternalIds` ([#1490](https://github.com/rollup/rollup/pull/1490))
- Add `--extend` flag to CLI ([#1482](https://github.com/rollup/rollup/pull/1482))
## 0.45.1
- Remove `weak` from `optionalDependencies` ([#1483](https://github.com/rollup/rollup/issues/1483))
## 0.45.0
- [BREAKING] `bundle.generate(...)` returns a Promise, so that `transformBundle` plugin hooks can be asynchronous ([#1474](https://github.com/rollup/rollup/issues/1474))
- Fix handling of catch clause parameters ([#1462](https://github.com/rollup/rollup/issues/1462))
## 0.43.1
- Fix memory leak on incremental rebuilds ([#883](https://github.com/rollup/rollup/issues/883))
- Allow `this.warn` and `this.error` to accept a `{line, column}` object as an alternative to a character index ([#1265](https://github.com/rollup/rollup/issues/1265))
- Print more useful error if entry module is 'external' ([#1264](https://github.com/rollup/rollup/issues/1264))
- Catch errors in `bundle.generate` options ([#1463](https://github.com/rollup/rollup/pull/1463))
- Include `new` expressions where callee is a class with side-effects ([#980](https://github.com/rollup/rollup/issues/980) [#1233](https://github.com/rollup/rollup/issues/1233))
## 0.41.0
- Add `this.warn(...)` and `this.error(...)` methods to plugin `transform` hook contexts ([#1140](https://github.com/rollup/rollup/issues/1140))
-`throw` always considered to be a side effect ([#1227](https://github.com/rollup/rollup/pull/1227))
## 0.40.2
- Add `file` property to sourcemaps for bundles with plugins ([#986](https://github.com/rollup/rollup/issues/986))
- Don't require globals for empty imports ([#1217](https://github.com/rollup/rollup/issues/1217))
## 0.40.1
- Allow missing space between `export default` and declaration ([#1218](https://github.com/rollup/rollup/pull/1218))
## 0.40.0
- [BREAKING] Better, more consistent error logging ([#1212](https://github.com/rollup/rollup/pull/1212))
- Don't use colours and emojis for non-TTY stderr ([#1201](https://github.com/rollup/rollup/issues/1201))
## 0.39.2
- Prevent mutation of cached ASTs (fixes stack overflow with rollup-watch) ([#1205](https://github.com/rollup/rollup/pull/1205))
## 0.39.1
- Ignore `var` initialisers in dead branches ([#1198](https://github.com/rollup/rollup/issues/1198))
## 0.39.0
- [BREAKING] Warnings are objects, rather than strings ([#1194](https://github.com/rollup/rollup/issues/1194))
## 0.38.3
- More informative warning for implicit external dependencies ([#1051](https://github.com/rollup/rollup/issues/1051))
- Warn when creating browser bundle with external dependencies on Node built-ins ([#1051](https://github.com/rollup/rollup/issues/1051))
- Statically analyse LogicalExpression nodes, for better dead code removal ([#1061](https://github.com/rollup/rollup/issues/1061))
## 0.38.2
- Preserve `var` declarations in dead branches ([#997](https://github.com/rollup/rollup/issues/997))
- Warn if exporting a call expression that looks like a function declaration ([#1011](https://github.com/rollup/rollup/issues/1011))
- Wrap function expressions in parentheses if necessary ([#1011](https://github.com/rollup/rollup/issues/1011))
- Warn if empty bundle is generated ([#444](https://github.com/rollup/rollup/issues/444))
- Support ES2017 syntax ([#492](https://github.com/rollup/rollup/issues/492))
- Remove unused imports from external modules ([#595](https://github.com/rollup/rollup/issues/595))
- Remove unused function and class declarations inside function bodies ([#1108](https://github.com/rollup/rollup/issues/1108), [#1178](https://github.com/rollup/rollup/issues/1178))
- Deconflict function expression IDs ([#1176](https://github.com/rollup/rollup/issues/1176))
## 0.38.0
- [BREAKING] `export { foo as default }` creates live binding ([#1078](https://github.com/rollup/rollup/issues/1078))
- Prevent sourceMappingURL removal edge case ([#988](https://github.com/rollup/rollup/issues/988))
- Bind function expression IDs to the correct scope ([#1083](https://github.com/rollup/rollup/issues/1083))
- Correctly deshadow destructured parameters with assignments ([#1008](https://github.com/rollup/rollup/issues/1008))
## 0.37.2
- Remove unused `new` expressions without side-effects ([#179](https://github.com/rollup/rollup/issues/179))
- Only remove valid sourceMappingURL comments ([#1132](https://github.com/rollup/rollup/issues/1132))
- Ensure blocks containing activated `var` declarations are included in output ([#1113](https://github.com/rollup/rollup/issues/1113))
- Support plugin outros ([#1116](https://github.com/rollup/rollup/issues/1116))
- Fix tree-shaking of recursive functions and other cases ([#1120](https://github.com/rollup/rollup/issues/1120), [#1142](https://github.com/rollup/rollup/issues/1142))
- Support module names that require quotes ([#582](https://github.com/rollup/rollup/issues/582), [#584](https://github.com/rollup/rollup/issues/584))
- [BREAKING] Default exports are not included in reified namespaces ([#1028](https://github.com/rollup/rollup/issues/1028))
- Parentheses do not defeat tree-shaking ([#1101](https://github.com/rollup/rollup/issues/1101), [#1128](https://github.com/rollup/rollup/issues/1128))
- More `legacy` fixes: do not create getters ([#1069](https://github.com/rollup/rollup/pull/1069)), do not include `__esModule` ([#1068](https://github.com/rollup/rollup/pull/1068)), quote reserved property names ([#1057](https://github.com/rollup/rollup/pull/1057))
- Fix missing namespace member warnings ([#1045](https://github.com/rollup/rollup/issues/1045))
- Fix TypeError in arrow function without braces returning a function ([#1062](https://github.com/rollup/rollup/pull/1062))
## 0.36.4
- Only depend on program-level call expressions ([#977](https://github.com/rollup/rollup/issues/977))
## 0.36.3
- Add `legacy` option for IE8 support ([#989](https://github.com/rollup/rollup/pull/989))
## 0.36.2
- Insert semicolons where necessary to fix broken code ([#1004](https://github.com/rollup/rollup/issues/1004))
- Include module ID and location when warning about top-level `this` ([#1012](https://github.com/rollup/rollup/pull/1012))
- More informative error for missing exports ([#1033](https://github.com/rollup/rollup/issues/1033))
-`options.moduleContext` for per-module context overrides ([#1023](https://github.com/rollup/rollup/pull/1023))
## 0.36.1
- Include naked block statements ([#981](https://github.com/rollup/rollup/issues/981))
- Correctly include falsy alternate statements in optimised if blocks ([#973](https://github.com/rollup/rollup/issues/973))
- Prevent omission of default exports that are only used by the exporting module ([#967](https://github.com/rollup/rollup/pull/967))
- Prevent warning on `auto` exports with ES output ([#966](https://github.com/rollup/rollup/pull/966))
## 0.36.0
-`export { foo as default }` no longer creates a live binding ([#860](https://github.com/rollup/rollup/issues/860))
## 0.35.15
- Warn on missing unused imports in deshadowing phase ([#928](https://github.com/rollup/rollup/issues/928))
- Always add a newline to the end of bundles ([#958](https://github.com/rollup/rollup/issues/958))
## 0.35.14
- Include all parent statements of expression with effects, up to function boundary ([#930](https://github.com/rollup/rollup/issues/930))
## 0.35.13
- Include superclasses when including their subclasses ([#932](https://github.com/rollup/rollup/issues/932))
## 0.35.12
- Add `interop: false` option to disable unwrapping of external imports ([#939](https://github.com/rollup/rollup/issues/939))
## 0.35.11
- Deconflict reified namespaces with other declarations ([#910](https://github.com/rollup/rollup/issues/910))
## 0.35.10
- Only remove EmptyStatement nodes directly inside blocks ([#913](https://github.com/rollup/rollup/issues/931))
## 0.35.9
- Support Node 0.12 ([#909](https://github.com/rollup/rollup/issues/909))
- Avoid infinite recursion in `Bundle.sort()` ([#800](https://github.com/rollup/rollup/pull/800))
## 0.34.2
- resolveId calls are cached now to improve incremental build
- Fixed error message recursion in plugins
## 0.34.1
- Support `paths` config ([#754](https://github.com/rollup/rollup/issues/754))
- Allow `export *` from external module, internally
## 0.34.0
- Use resolved IDs for relative imports that are also external modules, to allow `options.globals` to work with them ([#763](https://github.com/rollup/rollup/issues/763))
- Ensure reassigned exports are declared in an ES bundle, and remove empty `exports.foo;` statements ([#755](https://github.com/rollup/rollup/issues/755))
- Add newline after sourcemap comment ([#756](https://github.com/rollup/rollup/issues/756))
## 0.33.2
- Add `bundle` as second argument to `ongenerate` and `onwrite` hooks ([#773](https://github.com/rollup/rollup/pull/773))
- Warn on top-level `this` ([#770](https://github.com/rollup/rollup/issues/770))
- Fix Windows edge case with case-sensitive paths ([#760](https://github.com/rollup/rollup/pull/760))
## 0.33.0
- Downgrade missing transformer sourcemap to a warning, not an error, and print the name of the offending plugin if possible ([#746](https://github.com/rollup/rollup/issues/746))
- Warn if same name is re-exported from two modules ([#722](https://github.com/rollup/rollup/issues/722))
## 0.32.4
- Add `ongenerate` and `onwrite` plugin hooks ([#742](https://github.com/rollup/rollup/pull/742))
## 0.32.3
- Generated correct sourcemaps with reified namespaces ([#668](https://github.com/rollup/rollup/issues/668))
- Exclude plugin helper modules from sourcemaps ([#747](https://github.com/rollup/rollup/pull/747))
## 0.32.2
- Allow `--globals` to work with `--external` or `options.external` in whatever configuration ([#743](https://github.com/rollup/rollup/issues/743))
## 0.32.1
- Preserve side-effects to default exports that coincide with used named exports ([#733](https://github.com/rollup/rollup/issues/733))
- Support `rollup -c node:pkgname` ([#736](https://github.com/rollup/rollup/issues/736))
## 0.32.0
- Deprecate `es6` format in favour of `es` ([#468](https://github.com/rollup/rollup/issues/468))
- Experimental support for incremental rebuilds ([#658](https://github.com/rollup/rollup/pull/658))
## 0.27.1
- Ensure names exported from a module are not replaced with reserved words ([#696](https://github.com/rollup/rollup/pull/696))
- Revert ([#692](https://github.com/rollup/rollup/pull/692)) – resolved IDs must be strings
## 0.27.0
- Use native promises instead of `es6-promise` ([#689](https://github.com/rollup/rollup/issues/689))
- Support multiple targets in config files ([#655](https://github.com/rollup/rollup/issues/655))
- Allow `resolveId` plugin functions to return non-strings ([#692](https://github.com/rollup/rollup/pull/692))
## 0.26.7
- Distinguish between default and namespace imports of external module ([#637](https://github.com/rollup/rollup/issues/637))
- Add `__esModule` property to named exports in AMD, CJS and UMD modes ([#650](https://github.com/rollup/rollup/issues/650))
## 0.26.6
- Deconflict named imports from external modules in ES bundles ([#659](https://github.com/rollup/rollup/issues/659))
- Support `options.preferConst` to generate `const` declarations for exports rather than `var` declarations ([#653](https://github.com/rollup/rollup/issues/653))
- Prevent double export of aliased symbols ([#438](https://github.com/rollup/rollup/issues/438))
- Provide more informative error if Rollup is used in-browser without appropriate `resolveId`/`load` hooks ([#275](https://github.com/rollup/rollup/issues/275))
- Use `_interopDefault` function to DRY out code with many external dependencies, in CommonJS output ([#458](https://github.com/rollup/rollup/pull/458))
## 0.25.0
- **breaking** Module order is determined according to spec, rather than in a way designed to prevent runtime errors. Rollup will warn if it detects runtime errors are likely ([#435](https://github.com/rollup/rollup/issues/435))
- Prevent overly aggressive tree-shaking with complex call expressions ([#440](https://github.com/rollup/rollup/issues/440))
## 0.24.1
- Handle calls to default exports other that are not function expressions or references to function declarations ([#421](https://github.com/rollup/rollup/issues/421))
- Ensure namespace blocks are created for chained imports ([#430](https://github.com/rollup/rollup/issues/430))
- Include references in computed property keys ([#434](https://github.com/rollup/rollup/issues/434))
- Use CLI `--external` option correctly ([#417](https://github.com/rollup/rollup/pull/417))
- Allow relative imports to be treated as external, if absolute paths are provided in `options.external` ([#410](https://github.com/rollup/rollup/issues/410))
- Make IIFE output adhere to Crockford style ([#415](https://github.com/rollup/rollup/pull/415))
## 0.24.0
- No longer attempts to resolve IDs in `options.external` ([#407](https://github.com/rollup/rollup/issues/407))
- Fix broken sourcemap resolution in cases where some modules are transformed and others aren't ([#404](https://github.com/rollup/rollup/issues/404))
## 0.23.2
- Ensure `dest` or `sourceMapFile` is resolved against CWD for purposes of sourcemap generation ([#344](https://github.com/rollup/rollup/issues/344))
- Support `banner`, `footer`, `intro` and `outro` options via CLI ([#330](https://github.com/rollup/rollup/issues/330))
- Allow `options.global` to be a function rather than an object, and warn on missing names ([#293](https://github.com/rollup/rollup/issues/293))
- Ensure side-effects are captured in cyclical call expressions ([#397](https://github.com/rollup/rollup/issues/397))
- Fix parse error with body-less arrow function expressions ([#403](https://github.com/rollup/rollup/issues/403))
## 0.23.1
- Reinstate missing fix from ([#392](https://github.com/rollup/rollup/pull/392))
## 0.23.0
- Add `bundleTransform` plugin hook and option ([#387](https://github.com/rollup/rollup/pull/387))
- Correctly store names in sourcemaps, regardless of transformers
- Add `--environment` option to CLI ([#388](https://github.com/rollup/rollup/pull/388))
- Handle destructuring in exports ([#374](https://github.com/rollup/rollup/issues/374))
- Fix UMD global exports bug introduced in 0.22.1 ([#392](https://github.com/rollup/rollup/pull/392))
## 0.22.2
- Prevent lost `var` keywords ([#390](https://github.com/rollup/rollup/issues/390))
- Optimise namespaces with default exports ([#314](https://github.com/rollup/rollup/issues/314))
## 0.21.0
- Only include statements whose side-effects are relevant (i.e. contribute to exports or affect global state) ([#253](https://github.com/rollup/rollup/pull/253)) ([#253](https://github.com/rollup/rollup/pull/253))
- Exclude dead branches from analysis and inclusion ([#249](https://github.com/rollup/rollup/pull/249))
- Add `aggressive: true` option to eliminate all side-effects outside entry module
- More informative error when re-exporting non-existent binding ([#274](https://github.com/rollup/rollup/issues/274))
- Missing namespace exports are a warning, not an error ([#244](https://github.com/rollup/rollup/pulls/244))
- Plugins can provide `banner` and `footer` options (string, or function that returns a string) ([#235](https://github.com/rollup/rollup/issues/235))
- Warn on encountering `eval` ([#186](https://github.com/rollup/rollup/issues/186))
## 0.20.2
- Handle errors in build config file
- More robust deconflicting, in cases where e.g. `foo$1` already exists
- Use Rollup CLI for own build process
## 0.20.1
- Support `--config` file to enable plugins with CLI ([#226](https://github.com/rollup/rollup/pulls/226))
- Prevent `default` being used as variable name ([#215](https://github.com/rollup/rollup/issues/215))
- Update deps
## 0.20.0
- Support for [plugins](https://github.com/rollup/rollup/wiki/Plugins) ([#207](https://github.com/rollup/rollup/pulls/207))
- BREAKING –`options.transform`, `options.load`, `options.resolveId`, `options.resolveExternal` and `options.external` are no longer supported, and should be handled by plugins. [More info](https://github.com/rollup/rollup/wiki/Plugins)
- BREAKING – the .js extension is only added if it looks like there's no extension, allowing e.g. `import data from 'data.json'` (with the appropriate transformer). For safety, always include the file extension – import `./foo.js`, not `./foo`
## 0.19.2
- Fix exporting namespaces to include all of their exports ([#204](https://github.com/rollup/rollup/issues/204))
- Namespace exotic objects are frozen to ensure that its properties cannot be modified, reconfigured, redefined or deleted ([#203](https://github.com/rollup/rollup/pulls/203))
- Fix `ReferenceError: Promise is not defined` in node v0.10 ([#189](https://github.com/rollup/rollup/issues/189))
## 0.19.1
- Fix `module.basename()` when used with custom `resolveId` function
- Use [rollup-babel](https://github.com/rollup/rollup-babel) to build self
- Exposed the version string through the API: `require( 'rollup' ).VERSION`
## 0.19.0
- **breaking** The `transform` option is no longer passed through to custom loaders. Loaders should only concern themselves with providing source code; transformation will _always_ take place
-`options.transform` functions can return a string, or a `{code, map, ast}` object. Where possible, sourcemap chains will be flattened ([#175](https://github.com/rollup/rollup/pull/175))
-`options.resolveId`, `options.resolveExternal` and `options.load` can each be a function or an array of functions. If an array, the first non-null/undefined return value is used. In both cases, failed resolution/loading will fall back to the defaults, unless an error is thrown. ([#174](https://github.com/rollup/rollup/pull/174))
- New `intro` and `outro` options – similar to `banner` and `footer` except inserted _inside_ any format-specific wrapper
- Multiple var declarations in an export block (e.g. `export let a = 1, b = 2`) are split up to facilitate tree-shaking ([#171](https://github.com/rollup/rollup/issues/171))
- More informative error when using a missing namespace property ([#169](https://github.com/rollup/rollup/pull/169))
- Update various dependencies
## 0.18.5
- Allow namespaces to be assigned to variables ([#168](https://github.com/rollup/rollup/issues/168))
- Promote `chalk` and `source-map-support` to `dependencies`, as they're used by the CLI ([#167](https://github.com/rollup/rollup/pull/167))
## 0.18.4
- Make external modules configurable (i.e. `external.config.foo = 'bar'`) without erroring
## 0.18.3
- Crop indent exclusion ranges to exclude enclosing quotes ([#166](https://github.com/rollup/rollup/issues/166))
## 0.18.2
- Include definitions of namespace members that are exported as defaults
## 0.18.1
- Include `acorn.parse` in bundle, remove `sander` from dependencies, simplify build
- Optimisation for statically-analysable namespace imports ([#99](https://github.com/rollup/rollup/pull/99))
- Windows support (theoretically!) ([#117](https://github.com/rollup/rollup/pull/117) / [#119](https://github.com/rollup/rollup/pull/119))
## 0.15.0
- Load all modules specified by `import` statements, and do tree-shaking synchronously once loading is complete. This results in simpler and faster code, and enables future improvements ([#97](https://github.com/rollup/rollup/pull/97))
- Only rewrite `foo` as `exports.foo` when it makes sense to ([#92](https://github.com/rollup/rollup/issues/92))
- Fix bug with shadowed variables that are eventually exported ([#91](https://github.com/rollup/rollup/issues/91))
- Exclude unused function declarations that happen to modify a used name ([#90](https://github.com/rollup/rollup/pull/90))
- Simplify internal `Scope` model – scopes always attach to blocks, never function expressions/declarations
## 0.14.1
-`export { name } from './other'` does not create a local binding ([#16](https://github.com/rollup/rollup/issues/16))
- A single binding can be exported under multiple names ([#18](https://github.com/rollup/rollup/issues/18))
-`useStrict` option exposed to CLI as `--strict`/`--no-strict` ([#81](https://github.com/rollup/rollup/issues/81))
- Internal re-architecting to make discovery process simpler and more performant
- Preservation of side-effects that happen in a separate module to the affected definition ([#39](https://github.com/rollup/rollup/issues/39))
## 0.10.0
- Better sorting algorithm –sorting happens at the module level, rather than the statement level. This avoids certain edge cases
- IIFEs are ignored for the purposes of distinguishing between 'strong' and 'weak' dependencies
- Empty `var` declarations for exported bindings are omitted
## 0.9.1
- Much faster statement insertion (fixes major 0.9.0 performance regression)
## 0.9.0
- BREAKING - `resolvePath` is now `resolveId`. The returned `id` (which by default is a filepath) is passed to the `load` function, which can optionally be overridden, and which is applied to all modules including the entry module. This allows custom resolver and loading logic for integration with third party systems (e.g. JSPM) or, eventually, in-browser usage ([#30](https://github.com/rollup/rollup/issues/30))
- A statement cannot appear after later statements from the same bundle ([#34](https://github.com/rollup/rollup/issues/34))
- Tricky cyclical dependencies are handled ([#36](https://github.com/rollup/rollup/issues/36))
-`sourcemap` option is used by CLI (was omitted previously)
## 0.8.3
- Correctly rename functions that have arguments with the same name ([#32](https://github.com/rollup/rollup/issues/32))
- Ensure unused default exports are given a legal name ([#33](https://github.com/rollup/rollup/issues/33))
## 0.8.2
- Support `moduleId` and `moduleName` via CLI ([#24](https://github.com/rollup/rollup/issues/24))
## 0.8.1
- Anonymous functions that are exported as default are converted to named function declarations for correct hoisting, rather than being bound to functions ([#29](https://github.com/rollup/rollup/issues/29))
- Automatically-generated default export names are deconflicted with local definitions ([#29](https://github.com/rollup/rollup/issues/29))
## 0.8.0
- Top-level variable declarations with multiple declarators are split up, to avoid unnecessary code importing and incorrectly-ordered statements ([#26](https://github.com/rollup/rollup/issues/26))
-`this` at the top level is `undefined` ([#28](https://github.com/rollup/rollup/issues/28))
## 0.7.8
- Avoid using `path.parse` - unsupported in node 0.10
## 0.7.7
- Promise `source-map-support` from `devDependencies` to `dependencies` ([#23](https://github.com/rollup/rollup/issues/23))
## 0.7.6
- Better placement of `export default` statements ([#21](https://github.com/rollup/rollup/issues/21))
- Prevent function calls and property assignments from being treated as rebinding for sake of unbound default exports
- Add `--external foo,bar,baz` option to CLI (equivalent to `external: ['foo', 'bar', 'baz']`)
- Add CLI tests
## 0.7.5
- Prevent accidental conflicts with the global namespace ([#20](https://github.com/rollup/rollup/issues/20))
## 0.7.4
- More precise statement re-ordering to satisfy `export default` constraint (fixes bug introduced in 0.7.3)
## 0.7.3
- Default exports are not bound. To enable this, statements within a module are sorted to retain their original order ([#15](https://github.com/rollup/rollup/issues/15))
- Better positioning of comments ([#14](https://github.com/rollup/rollup/issues/14))
- Various fixes to get Travis-CI rigged up
## 0.7.2
- Fix sourcemap paths on Windows ([#6](https://github.com/rollup/rollup/pull/6))
## 0.7.1
- Named functions can be used as default exports from a bundle
- Method calls are assumed to mutate the owner (i.e. `foo.bar()` mutates `foo`) ([#13](https://github.com/rollup/rollup/issues/13))
-`options.indent` can be used to control indentation of resulting bundle. `options.true` (default) means 'auto', `options.false` means empty string. Alternatively specify whitespace e.g. `' '` or `'\t'` ([#5](https://github.com/rollup/rollup/issues/5))
## 0.7.0
- Ensure statements are always separated by a newline ([#9](https://github.com/rollup/rollup/pull/9))
- Use CommonJS `exports` correctly (UMD exports)
- Throw error if `moduleName` is required but missing (UMD exports)
- Attach IIFE global to `this` rather than `window`
- Allow names inside bundle to the the names of `Object.prototype` properties ([#12](https://github.com/rollup/rollup/pull/12))
- Keep exports live ([#11](https://github.com/rollup/rollup/pull/11))
## 0.6.5
- Add sourceMappingURL comment to code, as appropriate
- Higher resolution sourcemaps
## 0.6.4
- Fix CJS bundling with default export
## 0.6.3
- Fix exports and external module imports with some output formats
- Fix endless cycle bug on Windows ([#3](https://github.com/rollup/rollup/pull/3)) - thanks @Bobris
## 0.6.2
- Permit assignments to properties of imported bindings
## 0.6.1
- Support for basic transformers
## 0.6.0
- BREAKING - `rollup.rollup` and `bundle.write` both take a single options argument
- BREAKING - external modules must be declared upfront with `options.external: [...]`
- Non-relative module paths will be resolved by looking for `jsnext:main` fields in the appropriate `package.json` files. This behaviour can be overridden by passing an alternative `resolveExternal` function
- Fix sourcemap options
- Include CLI files in npm package (duh)
## 0.5.0
- Command line interface
- Sourcemap generation
- Correct behaviour with `export { x as y } from 'z'`
## 0.4.1
- More import name deconflicting
## 0.4.0
- Self-hosting! `rollup.rollup` now rolls up rollup
- Fix bug with comments inside a statement later being appended to it
- Prevent shadowing of external modules
- Rewrite computed property identifiers where necessary
- Preserve original statement order where possible
- Internal refactoring
## 0.3.1
- Saner deconflicting
- Rename namespace imports from external modules correctly