UNPKG

191 kBMarkdownView Raw
1# rollup changelog
2
3## 2.34.0
4*2020-11-29*
5
6### Features
7* Support RequireJS comaptible AMD ids in code-splitting builds via amd.autoId (#3867)
8* Allow adding an AMD id base path (#3867)
9
10### Bug Fixes
11* Warn when using an constant AMD id in a code-splitting build (#3867)
12
13### Pull Requests
14* [#3867](https://github.com/rollup/rollup/pull/3867): Implement amd.autoId/amd.basePath options (@tjenkinson)
15
16## 2.33.3
17*2020-11-18*
18
19### Bug Fixes
20* Do not use `.js` extension when importing AMD files from a UMD bundle (#3872)
21
22### Pull Requests
23* [#3861](https://github.com/rollup/rollup/pull/3861): Update chat/support links (@shellscape)
24* [#3872](https://github.com/rollup/rollup/pull/3872): Also removeExtensionFromRelativeAmdId in UMD finaliser (@tjenkinson)
25
26## 2.33.2
27*2020-11-14*
28
29### Bug Fixes
30* Fix an issue where statements were ignored after a conditional return in a labeled statement (#3871)
31
32### Pull Requests
33* [#3871](https://github.com/rollup/rollup/pull/3871): Correctly track label usage in try statements (@Amareis)
34
35## 2.33.1
36*2020-11-02*
37
38### Bug Fixes
39* Add `syntheticNamedExports` to `this.getModuleInfo` to align with documentation (#3847)
40
41### Pull Requests
42* [#3847](https://github.com/rollup/rollup/pull/3847): Expose syntheticNamedExports to ModuleInfo (@Amareis)
43* [#3852](https://github.com/rollup/rollup/pull/3852): Fix typo on docs (@jpsc)
44
45## 2.33.0
46*2020-11-01*
47
48### Features
49* Add parameter to "watchChange" hook to denote if a change was an addition, update or deletion (#3841)
50* Add "closeWatcher" hook to allow plugins to clean up resources when the watcher is closed (#3841)
51* Add "this.getWatchFiles" function to plugin context to get the current set of watched files (#3841)
52
53### Pull Requests
54* [#3841](https://github.com/rollup/rollup/pull/3841): Improved watcher hooks (@Amareis)
55* [#3848](https://github.com/rollup/rollup/pull/3848): Add options hook to asyncpluginhooks (@intrnl)
56
57## 2.32.1
58*2020-10-21*
59
60### Bug Fixes
61* Print warning location for plugin warnings if only `loc` is supplied (#3824)
62
63### Pull Requests
64* [#3824](https://github.com/rollup/rollup/pull/3824): plugin warnings not showing warning.loc (@luciotato)
65
66## 2.32.0
67*2020-10-16*
68
69### Features
70* Extend `preserveEntrySignatures` with a value `"exports-only"` to allow extension only if an entry does not have exports (#3823)
71
72### Pull Requests
73* [#3823](https://github.com/rollup/rollup/pull/3823): Add "exports-only" option to preserveSignature (@lukastaegert)
74
75## 2.31.0
76*2020-10-15*
77
78### Features
79* When using the `output.moduleToStringTag` option, also add the tag to entries with exports and simulated external namespaces (#3822)
80* Add the `__esModule` interop marker to IIFE global variables unless `output.esModule` is turned off (#3822)
81
82### Pull Requests
83* [#3822](https://github.com/rollup/rollup/pull/3822): Add module toStringTag to entries and interop namespaces (@lukastaegert)
84
85## 2.30.0
86*2020-10-13*
87
88### Features
89* Add `moduleParsed` hook that is called for each module once code and AST are available (#3813)
90* Include code and AST in `this.getModuleInfo` (#3813)
91
92### Bug Fixes
93* Provide the original Acorn AST instead of the internal one when resolving dynamic imports that contain non-trivial expressions (#3813)
94
95### Pull Requests
96* [#3813](https://github.com/rollup/rollup/pull/3813): Add moduleParsed plugin hook (@lukastaegert)
97* [#3815](https://github.com/rollup/rollup/pull/3815): Docs: wile => while (@tjenkinson)
98* [#3817](https://github.com/rollup/rollup/pull/3817): Docs: fix code snippet (@codefrau)
99* [#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)
100
101## 2.29.0
102*2020-10-08*
103
104### Features
105* Allow passing custom options to other plugins via `this.resolve` (#3807)
106* Allow attaching custom meta information to modules when resolving, loading or transforming (#3807)
107* Do not throw but return `null` when using `this.getModuleInfo` for an unknown id (#3807)
108
109### Bug Fixes
110* Trigger build in watch mode when files are added to a watched directory (#3812)
111* Make `code` optional when transforming modules (#3807)
112
113### Pull Requests
114* [#3807](https://github.com/rollup/rollup/pull/3807): Implement new APIs for inter-plugin communication (@lukastaegert)
115* [#3808](https://github.com/rollup/rollup/pull/3808): Document that the default value of --format is 'es' (@jameshfisher)
116* [#3812](https://github.com/rollup/rollup/pull/3812): Watch: listen for new files added to a directory (@dmitrage)
117
118## 2.28.2
119*2020-09-24*
120
121### Bug Fixes
122* Fix a source of possible variable name conflicts when using preserveModules with SystemJS (#3796)
123
124### Pull Requests
125* [#3792](https://github.com/rollup/rollup/pull/3792): add documentation for output.PreserveModulesRoot (@davidroeca)
126* [#3796](https://github.com/rollup/rollup/pull/3796): Fix SystemJS default variable conflict (@lukastaegert)
127
128## 2.28.1
129*2020-09-21*
130
131### Bug Fixes
132* Fix a path slash issue when using the preserveModulesRoot option on Windows (#3791)
133
134### Pull Requests
135* [#3791](https://github.com/rollup/rollup/pull/3791): Fix preserveModulesRoot path on Windows (@lukastaegert)
136
137## 2.28.0
138*2020-09-21*
139
140### Features
141* Add an option to treat modules at a given path as located at root when preserving modules (#3786)
142
143### Pull Requests
144* [#3786](https://github.com/rollup/rollup/pull/3786): Add preserveModulesRoot config option (@davidroeca)
145
146## 2.27.1
147*2020-09-17*
148
149### Bug Fixes
150* Do not fail when using ES module imports in symlinked config files (#3783)
151
152### Pull Requests
153* [#3783](https://github.com/rollup/rollup/pull/3783): Handle loading symlinked config files (@lukastaegert)
154
155## 2.27.0
156*2020-09-16*
157
158### Features
159* Support specifying a file extension when reading from stdin (#3775)
160
161### Bug Fixes
162* Do not break logic if a branch with hoisted variables is tree-shaken in an else-if statement (#3782)
163
164### Pull Requests
165* [#3770](https://github.com/rollup/rollup/pull/3770): Docs: Exception for babel plugin and commonjs plugin (@jsk7)
166* [#3775](https://github.com/rollup/rollup/pull/3775): add ability to specify stdin file extension via --stdin=ext (@kzc)
167* [#3782](https://github.com/rollup/rollup/pull/3782): Handle hoisted variables in dead branches of nested if statements (@lukastaegert)
168
169## 2.26.11
170*2020-09-08*
171
172### Bug Fixes
173* Do not fail for unknown nodes as if statement branches (#3769)
174
175### Pull Requests
176* [#3769](https://github.com/rollup/rollup/pull/3769): Handle debugger statements as if-statement branches (@lukastaegert)
177
178## 2.26.10
179*2020-09-04*
180
181### Bug Fixes
182* Do not create invalid code when simplifying expressions in return statements that contain line comments (#3762)
183
184### Pull Requests
185* [#3757](https://github.com/rollup/rollup/pull/3757): Fix api docs loadconfigfile (@maxwell8888)
186* [#3762](https://github.com/rollup/rollup/pull/3762): Handle line-comments when removing line-breaks to prevent ASI (@lukastaegert)
187
188## 2.26.9
189*2020-09-01*
190
191### Bug Fixes
192* Add regular expression support to watch include/exclude types (#3754)
193
194### Pull Requests
195* [#3754](https://github.com/rollup/rollup/pull/3754): Add RegExp to the include and exclude fields of the WatcherOptions type (@dagda1)
196* [#3756](https://github.com/rollup/rollup/pull/3756): Update FAQ: I think it was meant "external" instead of "other-entry.js" (@madacol)
197
198## 2.26.8
199*2020-08-29*
200
201### Bug Fixes
202* Make sure that both unresolved and resolved ids are passed to the `external` option in all cases (#3753)
203
204### Pull Requests
205* [#3753](https://github.com/rollup/rollup/pull/3753): Also pass resolved ids to external if they use the object for (@lukastaegert)
206
207## 2.26.7
208*2020-08-28*
209
210### Bug Fixes
211* Avoid invalid code when rendering hoisted variable declarations from dead branches (#3752)
212* Mark the `options` parameter of `this.parse` as optional for TypeScript plugins (#3750)
213
214### Pull Requests
215* [#3750](https://github.com/rollup/rollup/pull/3750): Make `options` of `PluginContext#parse` optional (@intrnl)
216* [#3752](https://github.com/rollup/rollup/pull/3752): Extract hoisted variables from dead branches (@lukastaegert)
217
218## 2.26.6
219*2020-08-27*
220
221### Bug Fixes
222* Avoid conflicts between the namespace of synthetic named exports and local variables (#3747)
223
224### Pull Requests
225* [#3747](https://github.com/rollup/rollup/pull/3747): Properly deconflict synthetic named exports (@lukastaegert)
226
227## 2.26.5
228*2020-08-22*
229
230### Bug Fixes
231* Use correctly deconflicted variable names for reexported namespaces in ES formats (#3742)
232
233### Pull Requests
234* [#3742](https://github.com/rollup/rollup/pull/3742): Avoid variable name conflict when reexporting several namespaces from a chunk (@lukastaegert)
235
236## 2.26.4
237*2020-08-19*
238
239### Bug Fixes
240* Fix a situation where invalid code was rendered when dynamically importing a module with synthetic named exports when preserving modules (#3738)
241* Create a proper namespace object when in a non-es format, a namespace is imported from a chunk with `default` export mode (#3738)
242* Use the same variable when in a chunk, a namespace is both imported and reexported as a binding (#3738)
243* Do not include the synthetic namespace in static entry points unless it is actually used (#3738)
244* Make sure the chunking of one output does not interfere with the namespace objects of another output (#3738)
245
246### Pull Requests
247* [#3738](https://github.com/rollup/rollup/pull/3738): Improve synthetic entry handling (@lukastaegert)
248
249## 2.26.3
250*2020-08-16*
251
252### Bug Fixes
253* Fix a situation where line-breaks in a nested simplified conditional expression could result in broken code (#3734)
254
255### Pull Requests
256* [#3734](https://github.com/rollup/rollup/pull/3734): Prevent ASI when simplifying a nested logical expression (@lukastaegert)
257
258## 2.26.2
259*2020-08-16*
260
261### Bug Fixes
262* Fix a situation where line-breaks in a simplified conditional expression could result in broken code (#3732)
263
264### Pull Requests
265* [#3732](https://github.com/rollup/rollup/pull/3732): Prevent unintended ASI for nested conditionals (@lukastaegert)
266
267## 2.26.1
268*2020-08-16*
269
270### Bug Fixes
271* Correctly render external namespace imports when only generating SystemJS output (#3731)
272
273### Pull Requests
274* [#3731](https://github.com/rollup/rollup/pull/3731): Render system namespace import (@sastan and @lukastaegert)
275
276## 2.26.0
277*2020-08-15*
278
279### Features
280* Add a new entry `importedBindings` to the bundle information to list bindings per dependency (#3722)
281
282### Bug Fixes
283* Do not render an invalid UMD wrapper when no bindings are imported from a dependency (#3724)
284* Avoid situations where removing the `else` branch from an `if` statement might catch the `else` branch from another one (#3725)
285
286### Pull Requests
287* [#3722](https://github.com/rollup/rollup/pull/3722): Add import specifiers to bundle information (@lukastaegert)
288* [#3724](https://github.com/rollup/rollup/pull/3724): Fix missing variables for UMD and IIFE builds (@lukastaegert)
289* [#3725](https://github.com/rollup/rollup/pull/3725): Do not entirely remove else branch if another else branch might accidentally be referenced (@lukastaegert)
290
291## 2.25.0
292*2020-08-14*
293
294### Features
295* Add `--failAfterWarnings` CLI flag that will complete builds with warnings but return an error at the end (#3712)
296
297### Pull Requests
298* [#3712](https://github.com/rollup/rollup/pull/3712): Implement `--failAfterWarnings` flag (@tjenkinson)
299
300## 2.24.0
301*2020-08-13*
302
303### Features
304* Allow defining interop per dependency via a function (#3710)
305* Support interop "auto" as a more compatible version of "true" (#3710)
306* Support interop "default" and "esModule" to avoid unnecessary interop helpers (#3710)
307* Support interop "defaultOnly" for simplified helpers and Node ESM interop compatible output (#3710)
308* Respect interop option for external dynamic imports (#3710)
309* Support live-bindings for external default imports in non-ES formats unless "externalLiveBindings" is "false" (#3710)
310* Use shared default interop helpers for AMD, UMD and IIFE formats (#3710)
311* Avoid unnecessarily deconflicted module variables in non-ES formats (#3710)
312* Freeze generated interop namespace objects (#3710)
313* Always mark interop helpers as pure (#3710)
314* Avoid default export interop if there is already an interop namespace object (#3710)
315* Sort all `require` statements to the top in CommonJS output for easier back-transpilation to ES modules by other tools (#3710)
316
317### Bug Fixes
318* Handle accessing `super` in static class fields (#3720)
319* Deconflict the names of helper variables introduced for interop (#3710)
320* Generate proper namespace objects for static namespace imports in non-ES formats (#3710)
321* Do not add unused interop helpers when using the renderDynamicImport hook (#3710)
322
323### Pull Requests
324* [#3710](https://github.com/rollup/rollup/pull/3710): Rework interop handling (@lukastaegert)
325* [#3720](https://github.com/rollup/rollup/pull/3720): Handle super in static class fields (@lukastaegert)
326
327## 2.23.1
328*2020-08-07*
329
330### Bug Fixes
331* Fix an issue where dynamically importing an entry point could return a malformed namespace for CJS and AMD formats (#3709)
332
333### Pull Requests
334* [#3709](https://github.com/rollup/rollup/pull/3709): Properly construct namespace when dynamically importing chunks with facades in default export mode (@lukastaegert)
335
336## 2.23.0
337*2020-07-23*
338
339### Features
340* Handle environments with only globalThis in UMD output (#3691)
341
342### Pull Requests
343* [#3691](https://github.com/rollup/rollup/pull/3691): Check for globalThis in UMD wrapper (@lukastaegert)
344
345## 2.22.2
346*2020-07-21*
347
348### Bug Fixes
349* Always generate correct exports when an implicit entry is reexporting from another module (#3688)
350
351### Pull Requests
352* [#3688](https://github.com/rollup/rollup/pull/3688): Include all relevant modules to generate reexports for implicit dependencies (@lukastaegert)
353
354## 2.22.1
355*2020-07-18*
356
357### Bug Fixes
358* Remove unused arguments when calling a conditional expression (#3680)
359
360### Pull Requests
361* [#3680](https://github.com/rollup/rollup/pull/3680): Allow tree-shaking of arguments of functions that are returned by conditional expressions (@lukastaegert)
362
363## 2.22.0
364*2020-07-18*
365
366### Features
367* Allow resolving synthetic named exports via an arbitrary export name (#3657)
368* 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)
369
370### Pull Requests
371* [#3657](https://github.com/rollup/rollup/pull/3657): Add basic support for using a non-default export for syntheticNamedExports (@lukastaegert)
372* [#3659](https://github.com/rollup/rollup/pull/3659): Warn when implicitly using default export mode (@lukastaegert)
373
374## 2.21.0
375*2020-07-07*
376
377### Features
378* Allow plugins to disable tree-shaking for individual modules to ensure even empty modules are associated with chunks (#3663)
379
380### Pull Requests
381* [#3663](https://github.com/rollup/rollup/pull/3663): Disable treeshaking per module (@lukastaegert)
382
383## 2.20.0
384*2020-07-06*
385
386### Features
387* Support using a function to generate different chunk and asset naming patterns per chunk or asset (#3658)
388* Add `referencedFiles` property to the chunk info in generateBundle to list referenced assets (#3661)
389
390### Pull Requests
391* [#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)
392* [#3661](https://github.com/rollup/rollup/pull/3661): Add referenced files to bundle (@lukastaegert)
393
394## 2.19.0
395*2020-07-05*
396
397### Features
398* Allow plugins to return a Promise in the options hook (#3660)
399
400### Pull Requests
401* [#3660](https://github.com/rollup/rollup/pull/3660): Make options hooks async (@TomerAberbach)
402
403## 2.18.2
404*2020-07-02*
405
406### Bug Fixes
407* Do not remove spread element args when the corresponding positional parameter is unused (#3652)
408
409### Pull Requests
410* [#3652](https://github.com/rollup/rollup/pull/3652): Do not tree-shake arguments that contain a spread element (@lukastaegert)
411
412## 2.18.1
413*2020-06-26*
414
415### Bug Fixes
416* Make sure synthetic exports are present when a module is imported dynamically (#3648)
417* Strip the `rollup-plugin-` prefix off the plugin name when looking for the plugin export in a CLI plugin without a default export (#3647)
418* Convert plugin names with dashes to camel case when looking for the plugin export in a CLI plugin without a default export (#3647)
419
420### Pull Requests
421* [#3647](https://github.com/rollup/rollup/pull/3647): Strip rollup-plugin prefix to find named plugin exports, throw when export cannot be found (@lukastaegert)
422* [#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)
423
424## 2.18.0
425*2020-06-22*
426
427### Features
428* `inlineDynamicImports`, `manualChunks` and `preserveModules` can now be used as output options (#3645)
429* Use sourcemaps for certain warnings that reference source code locations (#3645)
430
431### Bug Fixes
432* `this.getFileName` will now always return the correct file name for chunks when multiple outputs are created (#3645)
433
434### Pull Requests
435* [#3645](https://github.com/rollup/rollup/pull/3645): Per output chunking (@lukastaegert)
436
437## 2.17.1
438*2020-06-19*
439
440### Bug Fixes
441* Properly resolve accessing properties of namespace members again (#3643)
442
443### Pull Requests
444* [#3643](https://github.com/rollup/rollup/pull/3643): Fix accessing nested properties of namespaces (@lukastaegert)
445
446## 2.17.0
447*2020-06-17*
448
449### Features
450* When importing Rollup via package.exports, always fall back to the browser ESM build for non-Node environments (#3634)
451* Create more efficient code when handling namespace mutations (#3637)
452
453### Bug Fixes
454* Fix a severe performance regression when the same module is imported by a lot of modules (#3641)
455* Properly escape special characters in imports (#3638)
456
457### Pull Requests
458* [#3634](https://github.com/rollup/rollup/pull/3634): Set browser build in exports (@guybedford)
459* [#3637](https://github.com/rollup/rollup/pull/3637): Do not include the whole namespace when illegally mutating a namespace (@lukastaegert)
460* [#3638](https://github.com/rollup/rollup/pull/3638): Support backslash escaping, retain exact newline escaping (@guybedford)
461* [#3641](https://github.com/rollup/rollup/pull/3641): Fix performance regression when a file is imported by many importers (@lukastaegert)
462
463## 2.16.1
464*2020-06-13*
465
466### Bug Fixes
467* Do not produce invalid code when an external or chunk id contain quotes or line-breaks (#3632)
468* Do not fail but emit a warning when mutating a namespace object (#3633)
469
470### Pull Requests
471* [#3632](https://github.com/rollup/rollup/pull/3632): Handle single quote escaping in ids (@guybedford)
472* [#3633](https://github.com/rollup/rollup/pull/3633): Turn namespace assignment error into a warning (@guybedford)
473
474## 2.16.0
475*2020-06-12*
476
477### Features
478* Add support for numeric separators (#3626)
479* Switch to finalized ESTree optional chaining AST (#3628)
480
481### Pull Requests
482* [#3626](https://github.com/rollup/rollup/pull/3626): Support numeric separator (@TrySound)
483* [#3628](https://github.com/rollup/rollup/pull/3628): Acorn 7.3.0 upgrade (@guybedford)
484* [#3631](https://github.com/rollup/rollup/pull/3631): Improve discoverability of `manualChunks` for code splitting (@zlamma)
485
486## 2.15.0
487*2020-06-08*
488
489### Features
490* Allow to skip watching some configs via `watch: false` (#3620)
491* Provide the resolved sourcemap path to `sourcemapPathTransform` (#3617)
492
493### Pull Requests
494* [#3617](https://github.com/rollup/rollup/pull/3617): Update sourcemapPathTransform to also take the path to the sourcemap file as a second argument (@dgoldstein0)
495* [#3620](https://github.com/rollup/rollup/pull/3620): Rollup watch only one config in exported array (@luwol03)
496
497## 2.14.0
498*2020-06-07*
499
500### Features
501* Make `this.meta.watchMode` available for plugins to detect watch mode (#3616)
502
503### Bug Fixes
504* Handle exporting the same binding with different names in SystemJS (#3575)
505
506### Pull Requests
507* [#3575](https://github.com/rollup/rollup/pull/3575): Handle some cases of duplicate export bindings (@joeljeske)
508* [#3616](https://github.com/rollup/rollup/pull/3616): Make watch mode available in plugins (@lukastaegert)
509
510## 2.13.1
511*2020-06-04*
512
513### Bug Fixes
514* Prevent conflicts in SystemJS when `module` is used as a top-level variable (#3614)
515
516### Pull Requests
517* [#3614](https://github.com/rollup/rollup/pull/3614): Handle system reserved identifier dedupes (@guybedford)
518
519## 2.13.0
520*2020-06-03*
521
522### Features
523* Allow to specify that an emitted chunk is only loaded after a given module has loaded to improve chunking (#3606)
524
525### Pull Requests
526* [#3606](https://github.com/rollup/rollup/pull/3606): Enable specifying implicit dependencies when emitting chunks (@lukastaegert)
527
528## 2.12.1
529*2020-06-02*
530
531### Bug Fixes
532* Render valid imports when chunk names correspond to directory names in virtual setups (#3609)
533
534### Pull Requests
535* [#3609](https://github.com/rollup/rollup/pull/3609): Handle imports from chunks with names that correspond to parent directory names of other chunks (@guybedford)
536
537## 2.12.0
538*2020-05-31*
539
540### Features
541* Add an option `--waitForBundleInput` to let the build wait until all entry point files are available before starting (#3577)
542
543### Pull Requests
544* [#3577](https://github.com/rollup/rollup/pull/3577): Wait for bundle input option (@Heerschop)
545
546## 2.11.2
547*2020-05-28*
548
549### Bug Fixes
550* Include side-effects in the second argument of `Array.from` (#3604)
551
552### Pull Requests
553* [#3604](https://github.com/rollup/rollup/pull/3604): Mark `Array.from` as side-effectful, use two-argument Array.from when mapping Sets (@lukastaegert)
554
555## 2.11.1
556*2020-05-28*
557
558### Bug Fixes
559* Also include side-effects in files that are marked as side-effect-free if they contain an included default export that is reexported (#3602)
560
561### Pull Requests
562* [#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)
563
564## 2.11.0
565*2020-05-27*
566
567### Features
568* Add basic support for optional chaining (#3582)
569* Provide a normalized set of options with proper default values to `buildStart` and `renderStart` (#3597)
570* Do not count adding properties to the prototype of an unused class as a side-effect (#3598)
571* Support providing `null` for empty setters in SystemJS via option (#3592)
572
573### Bug Fixes
574* Do not fail when using a `/*#__PURE__*/` annotation inside a class field (#3599)
575* Allow using `--watch` and `--treeshake` together with sub-options such as `--watch.clearScreen` on the command line (#3597)
576
577### Pull Requests
578* [#3582](https://github.com/rollup/rollup/pull/3582): Support optional chaining via acorn fork(@guybedford)
579* [#3592](https://github.com/rollup/rollup/pull/3592): System format optional setters(@guybedford)
580* [#3597](https://github.com/rollup/rollup/pull/3597): Provide normalized options (@lukastaegert)
581* [#3598](https://github.com/rollup/rollup/pull/3598): Treeshake prototype modifications in classes (@lukastaegert)
582* [#3599](https://github.com/rollup/rollup/pull/3599): Retain pure annotations in class fields (@lukastaegert)
583* [#3601](https://github.com/rollup/rollup/pull/3601): Fix white-space in docs (@tu4mo)
584
585## 2.10.9
586*2020-05-24*
587
588### Bug Fixes
589* Prevent invalid exports when facades are created (#3590)
590
591### Pull Requests
592* [#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)
593
594## 2.10.8
595*2020-05-23*
596
597### Bug Fixes
598* Fix issues when synthetic named exports are reexported as default exports (#3586)
599
600### Pull Requests
601* [#3584](https://github.com/rollup/rollup/pull/3584): Clarify documentation for `output.paths` (@jacksteamdev)
602* [#3585](https://github.com/rollup/rollup/pull/3585): Target Node.js v14 instead of v13 in Windows tests (@mangs)
603* [#3586](https://github.com/rollup/rollup/pull/3586): Handle default reexports of synthetic named exports over several stages (@lukastaegert)
604
605## 2.10.7
606*2020-05-22*
607
608### Bug Fixes
609* Handle modules re-exporting namespaces without further own code (#3576)
610
611### Pull Requests
612* [#3576](https://github.com/rollup/rollup/pull/3576): Fix "cannot read exports of undefined" error (@guybedford)
613
614## 2.10.6
615*2020-05-22*
616
617### Bug Fixes
618* Fix some issues around class fields (#3580)
619* Prevent a maximum call stack error when a called entity references itself in its declaration (#3581)
620
621### Pull Requests
622* [#3580](https://github.com/rollup/rollup/pull/3580): Update acorn class features (@guybedford)
623* [#3581](https://github.com/rollup/rollup/pull/3581): Do not fail when including call arguments of recursively defined variables (@lukastaegert)
624
625## 2.10.5
626*2020-05-19*
627
628### Bug Fixes
629* Do not remove side-effects that may influence an included default export declaration when side-effects are disabled (#3572)
630
631### Pull Requests
632* [#3572](https://github.com/rollup/rollup/pull/3572): Observe side-effects in files containing a default export declaration that reexports a variable (@lukastaegert)
633
634## 2.10.4
635*2020-05-19*
636
637### Bug Fixes
638* Tree-shake unused classes with fields unless there are side-effects in the field declaration (#3569)
639
640### Pull Requests
641* [#3569](https://github.com/rollup/rollup/pull/3569): Make sure unused classes with fields are tree-shaken if possible (@lukastaegert)
642
643## 2.10.3
644*2020-05-18*
645
646### Bug Fixes
647* Validate return value of sourcemapPathTransform option (#3561)
648
649### Pull Requests
650* [#3561](https://github.com/rollup/rollup/pull/3561): Throw error if sourcemapPathTransform-option does not return a string (@Simonwep)
651
652## 2.10.2
653*2020-05-15*
654
655### Bug Fixes
656* Properly include calls to mutating array methods in certain scenarios (#3559)
657
658### Pull Requests
659* [#3559](https://github.com/rollup/rollup/pull/3559): Make sure UnknownFooExpressions are included when referenced as return values in a MultiExpression (@lukastaegert)
660
661## 2.10.1
662*2020-05-15*
663
664### Bug Fixes
665* Do not throw when "undefined" is used as a default export (#3558)
666
667### Pull Requests
668* [#3558](https://github.com/rollup/rollup/pull/3558): Properly handle default exporting undefined (@lukastaegert)
669
670## 2.10.0
671*2020-05-13*
672
673### Features
674* Avoid unnecessary empty imports from a facade chunk to the original chunk (#3552)
675* 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)
676
677### Bug Fixes
678* Do not omit reexports from secondary chunks when creating facades for entry points without hoisting transitive dependencies (#3552)
679
680### Pull Requests
681* [#3552](https://github.com/rollup/rollup/pull/3552): Avoid unnecessary facade dependency inlining (@guybedford)
682
683## 2.9.1
684*2020-05-11*
685
686### Bug Fixes
687* Do not create unintended live-bindings or invalid reexports when reexporting global variables (#3550)
688
689### Pull Requests
690* [#3550](https://github.com/rollup/rollup/pull/3550): Track updates of globals that are exported as default (@lukastaegert)
691
692## 2.9.0
693*2020-05-10*
694
695### Features
696* Add ids of static and dynamic imports to `this.getModuleInfo` (#3542)
697* Provide `getModuleInfo` and `getModuleIds` to `manualChunks` functions (#3542)
698* Add nullish coalescing support (#3548)
699* Make the rebuild delay in watch mode configurable and set the default to `0` for snappy rebuilds (#3502)
700* Add `this.getModuleIds` to the plugin context as future replacement for `this.moduleIds` (#3542)
701
702### Pull Requests
703* [#3502](https://github.com/rollup/rollup/pull/3502): Configurable build delay (@mattdesl)
704* [#3542](https://github.com/rollup/rollup/pull/3542): Extend manualChunks API (@lukastaegert)
705* [#3548](https://github.com/rollup/rollup/pull/3548): Support nullish coalescing with tree-shaking (@lukastaegert)
706
707## 2.8.2
708*2020-05-07*
709
710### Bug Fixes
711* Avoid invalid code when simplifying the body of a shorthand arrow function expression (#3540)
712
713### Pull Requests
714* [#3540](https://github.com/rollup/rollup/pull/3540): Wrap object expressions in parentheses if they become children of an arrow function expression (@lukastaegert)
715
716## 2.8.1
717*2020-05-07*
718
719### Bug Fixes
720* Allow using plugins on CLI that are exported as `exports.default` (#3529)
721* Do not fail side-effect detection in nested callbacks of builtins (#3539)
722
723### Pull Requests
724* [#3529](https://github.com/rollup/rollup/pull/3529): Use default named export with plugins (@NotWoods)
725* [#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)
726
727## 2.8.0
728*2020-05-06*
729
730### Features
731* When a dynamically imported chunk contains more exports than the imported module namespace, do not create a facade chunk but an inline namespace (#3535)
732
733### Bug Fixes
734* Do not execute dynamically imported code before synchronous code in the importing module when generating CommonJS (#3535)
735
736### Pull Requests
737* [#3535](https://github.com/rollup/rollup/pull/3535): Avoid dynamic facade chunks (@lukastaegert)
738
739## 2.7.6
740*2020-04-30*
741
742### Bug Fixes
743* Fix a type issue when a default export references a global variable (#3526)
744
745### Pull Requests
746* [#3526](https://github.com/rollup/rollup/pull/3526): Handles default exporting global variables (@lukastaegert)
747
748## 2.7.5
749*2020-04-29*
750
751### Bug Fixes
752* Prevent infinite loop when default values of function parameters in a default export contain a slash (#3522)
753
754### Pull Requests
755* [#3522](https://github.com/rollup/rollup/pull/3522): Avoid infinite loop when finding position for id insertion in default export (@lukastaegert)
756
757## 2.7.4
758*2020-04-29*
759
760### Bug Fixes
761* Fix an issue where wrong variable names were used when preserving modules (#3521)
762
763### Pull Requests
764* [#3521](https://github.com/rollup/rollup/pull/3521): Fix and improve default export alias logic (@lukastaegert)
765
766## 2.7.3
767*2020-04-27*
768
769### Bug Fixes
770* Do not access `__proto__` when running Rollup (#3518)
771
772### Pull Requests
773* [#3518](https://github.com/rollup/rollup/pull/3518): use acorn-class-fields and acorn-static-class-features from npm (@nitsky)
774
775## 2.7.2
776*2020-04-22*
777
778### Bug Fixes
779* Prevent an infinite loop when creating separate manual chunks with circular dependencies (#3510)
780* Do not fail if "super" is used in the definition of a class field (#3511)
781* Throw if a plugin tries to emit a file with an absolute Windows path (#3509)
782
783### Pull Requests
784* [#3509](https://github.com/rollup/rollup/pull/3509): Ban emitFile via absolute paths on Windows OS (@SASUKE40)
785* [#3510](https://github.com/rollup/rollup/pull/3510): Do not fail for circular imports between manual chunks (@lukastaegert)
786* [#3511](https://github.com/rollup/rollup/pull/3511): Support "super" in class fields (@lukastaegert)
787
788## 2.7.1
789*2020-04-21*
790
791### Bug Fixes
792* Use correct path for dynamic imports if `output.paths` is used (#3508)
793
794### Pull Requests
795* [#3508](https://github.com/rollup/rollup/pull/3508): Respect output.paths in dynamic imports (@lukastaegert)
796
797## 2.7.0
798*2020-04-21*
799
800### Features
801* Add `preserveEntrySignatures` option to control how exports of entry points are handled (#3498)
802* Add `preserveSignature` flag to `this.emitFile` to control exports of emitted chunks (#3498)
803* Add `output.minifyInternalExports` option to control if internal exports are minified (#3498)
804
805### Pull Requests
806* [#3498](https://github.com/rollup/rollup/pull/3498): Add option to configure if entry signatures are preserved (@lukastaegert)
807
808## 2.6.1
809*2020-04-12*
810
811### Bug Fixes
812* Close watch mode when stdin closes in a non-TTY environment (#3493)
813
814### Pull Requests
815* [#3493](https://github.com/rollup/rollup/pull/3493): Ensure --watch mode exits correctly when stdin is closed (@jakesgordon)
816
817## 2.6.0
818*2020-04-10*
819
820### Features
821* Allow regular expressions to declare external modules (#3482)
822
823### Pull Requests
824* [#3482](https://github.com/rollup/rollup/pull/3482): Allow regular expressions in config.external (@johannes-z)
825
826## 2.5.0
827This version is identical to 2.4.0
828
829## 2.4.0
830*2020-04-09*
831
832### Features
833* Add support for most private and public class field features (#3488)
834
835### Bug Fixes
836* Do not replace `this` with `undefined` in class field definitions (#3488)
837
838### Pull Requests
839* [#3488](https://github.com/rollup/rollup/pull/3488): Rollup class fields support (@guybedford and @lukastaegert)
840
841## 2.3.5
842*2020-04-09*
843
844### Bug Fixes
845* Never remove labels when tree-shaking is disabled (#3492)
846
847### Pull Requests
848* [#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)
849
850## 2.3.4
851*2020-04-07*
852
853### Bug Fixes
854* Handle re-exporting synthetic exports from entry-points (#3319)
855* Fix cross-chunk imports of synthetic exports (#3319)
856* Handle namespace objects that contain re-exported synthetic namespaces (#3319)
857
858### Pull Requests
859* [#3319](https://github.com/rollup/rollup/pull/3319): Handle re-exports of synthetic named exports (@manucorporat and @lukastaegert)
860
861## 2.3.3
862*2020-04-04*
863
864### Bug Fixes
865* Add external namespaces to dynamic namespace objects (#3474)
866
867### Pull Requests
868* [#3474](https://github.com/rollup/rollup/pull/3474): Support external star exports on namespace objects (@guybedford)
869
870## 2.3.2
871*2020-03-31*
872
873### Bug Fixes
874* Only warn but do not fail build when a namespace is called as a function (#3475)
875* Make sure pre-existing sourcemap comments are also removed when rebuilding using the cache (#3476)
876
877### Pull Requests
878* [#3475](https://github.com/rollup/rollup/pull/3475): Call namespace error as a warning (@guybedford)
879* [#3476](https://github.com/rollup/rollup/pull/3476): Store locations for removed comments in cache (@lukastaegert)
880
881## 2.3.1
882*2020-03-30*
883
884### Bug Fixes
885* Do not fail if the config file returns an function returning a Promise (#3472)
886
887### Pull Requests
888* [#3472](https://github.com/rollup/rollup/pull/3472): Fix support for async functions as config (@lukastaegert)
889
890## 2.3.0
891*2020-03-29*
892
893### Features
894* Do not transpile config files with `.mjs` extension in Node 13+ or `.cjs` extension in any Node version and load them appropriately (#3445)
895* Extract helper to load a config file the way rollup does it via `rollup/dist/loadConfigFile` (#3445)
896
897### Bug Fixes
898* Keep watching the config file if an error occurs during initial load in watch node (#3445)
899* Add a helpful error message when using a transpiled config in a repository with "type": "module" (#3445)
900
901### Pull Requests
902* [#3445](https://github.com/rollup/rollup/pull/3445): Support native ESM configs in Node 13, support untranspiled configs (@lukastaegert)
903* [#3468](https://github.com/rollup/rollup/pull/3468): Don't use esm output format alias in the documentation (@vsn4ik)
904
905## 2.2.0
906*2020-03-24*
907
908### Features
909* Add `renderDynamicImport` hook to rewrite dynamic import expressions (#3449)
910* Add information about dynamically imported modules to `this.getModuleInfo` (#3449)
911
912### Bug Fixes
913* Make file emission work with Uin8Array sources when using Rollup in the browser (#3452)
914* Fix types to allow watch to accept an array of configs (#3453)
915* Do not strip `.js` extensions from AMD imports when the import is a user-supplied replacement for a non-resolvable dynamic import target (#3453)
916
917### Pull Requests
918* [#3449](https://github.com/rollup/rollup/pull/3449): Add hook to rewrite dynamic import expressions (@lukastaegert)
919* [#3452](https://github.com/rollup/rollup/pull/3452): Avoid the assumption of Buffer in browser envs (@JoviDeCroock)
920* [#3453](https://github.com/rollup/rollup/pull/3453): fix types since watch accepts single or array config (@lukeed)
921* [#3456](https://github.com/rollup/rollup/pull/3456): fix SystemJS url in tutorial (@guybedford)
922
923## 2.1.0
924*2020-03-18*
925
926### Features
927* Allow specifying an importer when emitting files to resolve relative ids (#3442)
928
929### Pull Requests
930* [#3442](https://github.com/rollup/rollup/pull/3442): Add optional `importer` parameter to `this.emitFile` (@lukastaegert)
931
932## 2.0.6
933*2020-03-13*
934
935### Bug Fixes
936* Do not use file names from different outputs when generating sourcemaps using the `dir` option (#3440)
937
938### Pull Requests
939* [#3440](https://github.com/rollup/rollup/pull/3440): Use correct file names when writing sourcemaps for multiple outputs (@lukastaegert)
940
941## 2.0.5
942*2020-03-12*
943
944### Bug Fixes
945* Fix an issue where conditional statements would assume they have the wrong test value (#3438)
946
947### Pull Requests
948* [#3438](https://github.com/rollup/rollup/pull/3438): Make sure logical expressions always check the left argument for side-effects (@lukastaegert)
949
950## 2.0.4
951*2020-03-12*
952
953### Bug Fixes
954* Avoid conflicts between namespace imports when preserving modules (#3435)
955
956### Pull Requests
957* [#3435](https://github.com/rollup/rollup/pull/3435): Deconflict multiple `index` imports for ES format using nested export star statements (@kamranayub)
958
959## 2.0.3
960*2020-03-10*
961
962### Bug Fixes
963* Add type for this.getCombinedSourcemap to transform context (#3431)
964
965### Pull Requests
966* [#3377](https://github.com/rollup/rollup/pull/3377): Switch to yargs-parser lib (@jamesgeorge007)
967* [#3426](https://github.com/rollup/rollup/pull/3426): Use strict types with PluginDriver (@NotWoods)
968* [#3431](https://github.com/rollup/rollup/pull/3431): Add missing type declaration for getCombinedSourcemap (@Anidetrix)
969* [#3432](https://github.com/rollup/rollup/pull/3432): Detail how return values from `augmentChunkHash` are used (@jakearchibald)
970
971## 2.0.2
972*2020-03-07*
973
974### Bug Fixes
975* Make sure the ESM import still works (#3430)
976
977### Pull Requests
978* [#3430](https://github.com/rollup/rollup/pull/3430): Fix conditional exports again (@lukastaegert)
979
980## 2.0.1
981*2020-03-07*
982
983### Bug Fixes
984* Reenable importing rollup in Node 13.0 - 13.7 (#3428)
985
986### Pull Requests
987* [#3428](https://github.com/rollup/rollup/pull/3428): Fix conditional exports in Node 13.0 - 13.7 (@lukastaegert)
988
989## 2.0.0
990*2020-03-06*
991
992### Breaking Changes
993* Rollup now requires at least Node 10 to run, or a sufficiently modern browser (#3346)
994* The file structure of Rollup's ESM builds has changed:
995 - The main ESM entry point is now at `rollup/dist/es/rollup.js` instead of `rollup/dist/rollup.es.js`
996 - The ESM browser build is at `rollup/dist/es/rollup.browser.js` instead of `rollup/dist/rollup.browser.es.js`
997
998 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)
999* 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)
1000* Modules that are completely tree-shaken will no longer be listed as part of any chunks in `generateBundle`
1001* The `experimentalOptimizeChunks` and `chunkGroupingSize` options have been removed
1002* [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)
1003* Emitted chunks now have the TypeScript type `Uint8Array` instead of `Buffer`. A `Buffer` can still be used, though (#3395)
1004* 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)
1005* 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)
1006* The following plugin hooks have been removed:
1007 - ongenerate: use `generateBundle` instead
1008 - onwrite: use `writeBundle` instead
1009 - transformBundle: use `renderChunk` instead
1010 - transformChunk: use `renderChunk` instead
1011* You can no longer access `this.watcher` on the plugin context.
1012* The `transform` hook can no longer return `dependencies`.
1013* The `treeshake.pureExternalModules` option will now show a deprecation warning when used: use `treeshake.moduleSideEffects: 'no-external'` instead
1014* 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
1015* The `resolveAssetUrl` hook will now show a deprecation warning when used: use `resolveFileUrl` instead
1016* The following plugin context functions will show warnings when used:
1017 - `this.emitAsset`: use `this.emitFile`
1018 - `this.emitChunk`: use `this.emitFile`
1019 - `this.getAssetFileName`: use `this.getFileName`
1020 - `this.getChunkFileName`: use `this.getFileName`
1021 - `this.isExternal`: use `this.resolve`
1022 - `this.resolveId`: use `this.resolve`
1023* Directly adding properties to the bundle object in the `generateBundle` is deprecated will show a warning (removing properties is allowed, though): Use `this.emitFile`
1024* Accessing `chunk.isAsset` on the bundle is deprecated: Use `chunk.type === 'asset'` instead
1025* 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)
1026
1027### Features
1028* Rollup now bundles [Chokidar](https://github.com/paulmillr/chokidar) for a better watch experience (#3331)
1029* Rollup now bundles [acorn](https://github.com/acornjs/acorn) again, removing its only external dependency (#3391)
1030* Do not consider empty imports from side-effect-free modules for chunking and hoist side-effect imports if necessary (#3369)
1031* 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)
1032* `systemjs` can be used as format alias for `system` (#3381)
1033
1034### Bug Fixes
1035* Unknown output options now trigger a warning when using the JavaScript API (#3352)
1036* Rollup will no longer introduce Node types into TypeScript projects that do not use them (#3395)
1037* Generate correct sourcemaps when tree-shaking occurs in a multi-file bundle (#3423)
1038
1039### Pull Requests
1040* [#3331](https://github.com/rollup/rollup/pull/3331): Bundle Chokidar (@lukastaegert)
1041* [#3343](https://github.com/rollup/rollup/pull/3343): Remove experimentalOptimizeChunks (@lukastaegert)
1042* [#3346](https://github.com/rollup/rollup/pull/3346): Update minimum required Node version to 10 (@lukastaegert)
1043* [#3352](https://github.com/rollup/rollup/pull/3352): Remove active deprecations (@lukastaegert)
1044* [#3361](https://github.com/rollup/rollup/pull/3361): Change writeBundle signature to match generateBundle (@lukastaegert)
1045* [#3369](https://github.com/rollup/rollup/pull/3369): Avoid empty imports from side-effect-free chunks (@lukastaegert)
1046* [#3381](https://github.com/rollup/rollup/pull/3381): Rename esm to es everywhere, add systemjs alias (@lukastaegert)
1047* [#3391](https://github.com/rollup/rollup/pull/3391): Bundle acorn, allow importing Rollup as Node ES module, update dependencies (@lukastaegert)
1048* [#3393](https://github.com/rollup/rollup/pull/3393): Better error code for name-less umd bundle (@rail44)
1049* [#3395](https://github.com/rollup/rollup/pull/3395): Remove `@types` dependencies (@lukastaegert)
1050* [#3423](https://github.com/rollup/rollup/pull/3423): Update magic-string and fix sourcemaps (@lukastaegert)
1051
1052## 1.32.1
1053*2020-03-06*
1054
1055### Bug Fixes
1056* Handle default export detection for AMD and IIFE externals that do not have a prototype (#3420)
1057* Handle missing whitespace when the else branch of an if-statement is simplified (#3421)
1058* Mention the importing module when reporting errors for missing named exports (#3401)
1059* Add code to warning for missing output.name of IIFE bundles (#3372)
1060
1061### Pull Requests
1062* [#3372](https://github.com/rollup/rollup/pull/3372): Add warning code for missing output.name of IIFE bundle that has export (@rail44)
1063* [#3401](https://github.com/rollup/rollup/pull/3401): Missing exports errors now print the importing module (@timiyay)
1064* [#3418](https://github.com/rollup/rollup/pull/3418): Structure lifecycle hooks, add links to build time hooks (@lukastaegert)
1065* [#3420](https://github.com/rollup/rollup/pull/3420): Update generated code of getInteropBlock() to work with null prototype objects (@jdalton)
1066* [#3421](https://github.com/rollup/rollup/pull/3421): Avoid invalid code when "else" branch is simplified (@lukastaegert)
1067
1068## 1.32.0
1069*2020-02-28*
1070
1071### Features
1072* Allow adding plugins on the command line via `--plugin <plugin>` (#3379)
1073
1074### Pull Requests
1075* [#3379](https://github.com/rollup/rollup/pull/3379): introduce CLI --plugin support (@kzc)
1076* [#3390](https://github.com/rollup/rollup/pull/3390): fix typo: this.addWatchfile (@mistlog)
1077* [#3392](https://github.com/rollup/rollup/pull/3392): Bump codecov from 3.6.1 to 3.6.5
1078* [#3404](https://github.com/rollup/rollup/pull/3404): Update resolveFileUrl docs (@jakearchibald)
1079
1080## 1.31.1
1081*2020-02-14*
1082
1083### Bug Fixes
1084* Make sure errored files are always re-evaluated in watch mode to avoid an issue in the typescript plugin (#3388)
1085
1086### Pull Requests
1087* [#3366](https://github.com/rollup/rollup/pull/3366): Correct spelling minifaction to minification (@VictorHom)
1088* [#3371](https://github.com/rollup/rollup/pull/3371): Adjust bug template to mention REPL.it (@lukastaegert)
1089* [#3388](https://github.com/rollup/rollup/pull/3388): Run transform hooks again in watch mode on files that errored (@lukastaegert)
1090
1091## 1.31.0
1092*2020-01-31*
1093
1094### Features
1095* Always disable tree-shaking for asm.js functions to maintain semantics (#3362)
1096
1097### Pull Requests
1098* [#3362](https://github.com/rollup/rollup/pull/3362): Preserve asm.js code (@lukastaegert)
1099
1100## 1.30.1
1101*2020-01-27*
1102
1103### Bug Fixes
1104* Do not mistreat static entgry points as dynamic ones when chunking (#3357)
1105* Resolve a crash when chunking circular dynamic imports (#3357)
1106
1107### Pull Requests
1108* [#3357](https://github.com/rollup/rollup/pull/3357): Resolve issues with circular dynamic entries (@lukastaegert)
1109
1110## 1.30.0
1111*2020-01-27*
1112
1113### Features
1114* Do not split chunks when dynamically imported modules import modules that are already loaded by all dynamic importers (#3354)
1115* Add `hoistTransitiveImports` option to disable hoisting imports of static dependencies into entry chunks (#3353)
1116
1117### Bug Fixes
1118* Make sure polyfills are always loaded first when each static entry point contains them as first import (#3354)
1119
1120### Pull Requests
1121* [#3353](https://github.com/rollup/rollup/pull/3353): Add option to avoid hoisting transitive imports (@lukastaegert)
1122* [#3354](https://github.com/rollup/rollup/pull/3354): Improve chunking algorithm for dynamic imports (@tjenkinson and @lukastaegert)
1123
1124## 1.29.1
1125*2020-01-21*
1126
1127### Bug Fixes
1128* Avoid crashes for circular reexports when named exports cannot be found (#3350)
1129
1130### Pull Requests
1131* [#3335](https://github.com/rollup/rollup/pull/3335): Fix typo (@robbinworks)
1132* [#3342](https://github.com/rollup/rollup/pull/3342): Remove ":" from test file names for Windows and update dependencies (@lukastaegert)
1133* [#3350](https://github.com/rollup/rollup/pull/3350): Properly handle circular reexports (@lukastaegert)
1134
1135## 1.29.0
1136*2020-01-08*
1137
1138### Features
1139* Enable top-level await by default (#3089)
1140* Add typings for watch events (#3302)
1141
1142### Bug Fixes
1143* Deconflict files that would conflict only on a case-insensitive OS (#3317)
1144* Do not fail in certain scenarios where a logical expression inside a sequence expression was being directly included (#3327)
1145
1146### Pull Requests
1147* [#3089](https://github.com/rollup/rollup/pull/3089): Move top-level await out of experimental (@guybedford)
1148* [#3302](https://github.com/rollup/rollup/pull/3302): Adds type definitions for RollupWatcher events (@NotWoods)
1149* [#3317](https://github.com/rollup/rollup/pull/3317): Fix module id conflict on a case insensitive OS (@yesmeck)
1150* [#3327](https://github.com/rollup/rollup/pull/3327): Handle deoptimizations while a node is being included (@lukastaegert)
1151
1152## 1.28.0
1153*2020-01-04*
1154
1155### Features
1156* Allow piping in stdin via the command line interface (#3312, #3290)
1157* Allow plugins to mark modules as having syntheticNamedExports for e.g. better CJS interoperability (#3295)
1158* Ignore variable reassignments in dead code when tree-shaking to remove more unneeded code (#3212)
1159
1160### Bug Fixes
1161* Properly respect tree-shaken code when generating sourcemaps (#3318)
1162
1163### Pull Requests
1164* [#3212](https://github.com/rollup/rollup/pull/3212): Handle assignments in dead code (@tjenkinson)
1165* [#3290](https://github.com/rollup/rollup/pull/3290): Implement stdin input with optional "-" as the file name (@kzc)
1166* [#3295](https://github.com/rollup/rollup/pull/3295): Add syntheticNamedExports (@manucorporat)
1167* [#3300](https://github.com/rollup/rollup/pull/3300): Add note about setting `types` in tsconfig file (@tjenkinson)
1168* [#3303](https://github.com/rollup/rollup/pull/3303): Use ! to assert not-null in TypeScript (@NotWoods)
1169* [#3312](https://github.com/rollup/rollup/pull/3312): Implement stdin input (@lukastaegert)
1170* [#3318](https://github.com/rollup/rollup/pull/3318): Update magic-string and other dependencies (@lukastaegert)
1171
1172## 1.27.14
1173*2019-12-22*
1174
1175### Bug Fixes
1176* Update references to official rollup plugins in error messages (#3297, #3298)
1177
1178### Pull Requests
1179* [#3286](https://github.com/rollup/rollup/pull/3286): Update link to JavaScript API documentation (@romankaravia)
1180* [#3294](https://github.com/rollup/rollup/pull/3294): Update deprecated references to the node-resolve plugin in the documentation (@Vlad-Shcherbina)
1181* [#3297](https://github.com/rollup/rollup/pull/3297): Update references to rollup-plugin-json (@cprecioso)
1182* [#3298](https://github.com/rollup/rollup/pull/3298): Update references to official rollup plugins (@cprecioso)
1183
1184## 1.27.13
1185*2019-12-14*
1186
1187### Bug Fixes
1188* Do not truncate environment variable values at the first colon when using the `--environment` option (#3283)
1189
1190### Pull Requests
1191* [#3283](https://github.com/rollup/rollup/pull/3283): Allow environment variables to contain colons (@tlaverdure)
1192
1193## 1.27.12
1194*2019-12-13*
1195
1196### Bug Fixes
1197* Prevent invalid AMD or SystemJS code when accessing `import.meta` (#3282)
1198
1199### Pull Requests
1200* [#3282](https://github.com/rollup/rollup/pull/3282): Always make "module" available for SystemJS and AMD formats if `import.meta` is accessed directly (@lukastaegert)
1201
1202## 1.27.11
1203*2019-12-12*
1204
1205### Bug Fixes
1206* Resolve a crash due to an infinite loop (#3280)
1207
1208### Pull Requests
1209* [#3280](https://github.com/rollup/rollup/pull/3280): Prevent infinite deoptimizations (@lukastaegert)
1210
1211## 1.27.10
1212*2019-12-11*
1213
1214### Bug Fixes
1215* Keep track of function return values in more situations (#3278)
1216
1217### Pull Requests
1218* [#3278](https://github.com/rollup/rollup/pull/3278): Avoid some unnecessary value tracking deoptimizations (@lukastaegert)
1219
1220## 1.27.9
1221*2019-12-07*
1222
1223### Bug Fixes
1224* Fix an issue where reexports could be missing when preserving modules (#3273)
1225* Allow turning of color output via NO_COLOR or FORCE_COLOR=0 environment variables (#3272)
1226
1227### Pull Requests
1228* [#3272](https://github.com/rollup/rollup/pull/3272): Support either NO_COLOR or FORCE_COLOR=0 to turn off color (@kikonen)
1229* [#3273](https://github.com/rollup/rollup/pull/3273): Make sure that indirectly reexported modules also become chunk dependencies when preserving modules(@lukastaegert)
1230
1231## 1.27.8
1232*2019-12-02*
1233
1234### Bug Fixes
1235* Deoptimize objects when a method is called on them to make sure modifications via "this" are observed (#3266)
1236
1237### Pull Requests
1238* [#3266](https://github.com/rollup/rollup/pull/3266): Workaround for various object literal mutation bugs (@kzc)
1239
1240## 1.27.7
1241*2019-12-01*
1242
1243### Bug Fixes
1244* Fix a scenario where a reassignments to computed properties were not tracked (#3267)
1245
1246### Pull Requests
1247* [#3267](https://github.com/rollup/rollup/pull/3267): Fix incomplete computed property deoptimization (@lukastaegert)
1248
1249## 1.27.6
1250*2019-11-30*
1251
1252### Bug Fixes
1253* Use "auto" export mode by default for all modules when preserving modules (#3265)
1254* Observe "output.exports" when preserving modules and warn for mixed exports if necessary (#3265)
1255
1256### Pull Requests
1257* [#3265](https://github.com/rollup/rollup/pull/3265): Use export mode "auto" by default when preserving modules (@lukastaegert)
1258
1259## 1.27.5
1260*2019-11-25*
1261
1262### Bug Fixes
1263* Make sure namespaces for inlined dynamic imports are treated as variable accesses when deconflicting (#3256)
1264
1265### Pull Requests
1266* [#3256](https://github.com/rollup/rollup/pull/3256): Avoid name conflicts when inlining dynamic imports nested in functions (@lukastaegert)
1267* [#3257](https://github.com/rollup/rollup/pull/3257): Update dependencies (@lukastaegert)
1268
1269## 1.27.4
1270*2019-11-22*
1271
1272### Bug Fixes
1273* Aggregate circular dependency warnings in the CLI (#3249)
1274* Do not defer non-aggregated handlers in the CLI (#3249)
1275
1276### Pull Requests
1277* [#3249](https://github.com/rollup/rollup/pull/3249): Fix broken Windows CLI tests (@lukastaegert)
1278* [#3251](https://github.com/rollup/rollup/pull/3251): Add installation as a separate header (@ashrith-kulai)
1279
1280## 1.27.3
1281*2019-11-20*
1282
1283### Bug Fixes
1284* Provide better warning when empty chunks are created in a code-splitting scenario (#3244)
1285
1286### Pull Requests
1287* [#3244](https://github.com/rollup/rollup/pull/3244): Clearer empty chunk warning (@tjenkinson)
1288
1289## 1.27.2
1290*2019-11-18*
1291
1292### Bug Fixes
1293* Fix an issue where live bindings were not working correctly when using `+=` in SystemJS (#3242)
1294
1295### Pull Requests
1296* [#3242](https://github.com/rollup/rollup/pull/3242): Export updated assignments when using shorthand update assignment expressions in SystemJS (@lukastaegert)
1297
1298## 1.27.1
1299*2019-11-18*
1300
1301### Bug Fixes
1302* Fix an issue where code after a switch-statement with removed cases was erroneously not included (#3241)
1303
1304### Pull Requests
1305* [#3237](https://github.com/rollup/rollup/pull/3237): make `acornOptions` optional in `parse()` in docs (@tjenkinson)
1306* [#3240](https://github.com/rollup/rollup/pull/3240): Update dependencies and fix vulnerability (@lukastaegert)
1307* [#3241](https://github.com/rollup/rollup/pull/3241): Do not truncate after switch-statement with removed case (@lukastaegert)
1308
1309## 1.27.0
1310*2019-11-12*
1311
1312### Features
1313* Add support for output-specific plugins (#3218)
1314* Reenable parallel output processing when using the CLI (#3218)
1315* Warn if files are emitted that would overwrite previously emitted files (#3218)
1316
1317### Bug Fixes
1318* Do not overwrite files emitted in other builds if outputs are generated in parallel (#3218)
1319
1320### Pull Requests
1321* [#3218](https://github.com/rollup/rollup/pull/3218): Per output plugins (@lukastaegert)
1322
1323## 1.26.5
1324*2019-11-11*
1325
1326### Bug Fixes
1327* Fix a regression where it was no longer to pass a certain option format to generate (#3223)
1328
1329### Pull Requests
1330* [#3223](https://github.com/rollup/rollup/pull/3223): Allow passing input options to output (@lukastaegert)
1331
1332## 1.26.4
1333*2019-11-09*
1334
1335### Bug Fixes
1336* Keep watching known files after a plugin error during the initial build (#3219)
1337
1338### Pull Requests
1339* [#3216](https://github.com/rollup/rollup/pull/3216): Fix small typo (@kaisermann)
1340* [#3217](https://github.com/rollup/rollup/pull/3217): Update dependencies and fix security vulnerability (@lukastaegert)
1341* [#3219](https://github.com/rollup/rollup/pull/3219): Also recover from plugin errors during the initial build (@lukastaegert)
1342
1343## 1.26.3
1344*2019-11-02*
1345
1346### Bug Fixes
1347* Work around an incompatibility with rollup-plugin-dts (#3211)
1348
1349### Pull Requests
1350* [#3211](https://github.com/rollup/rollup/pull/3211): Do no fail if the source attribute is `undefined` in an unused named export (@lukastaegert)
1351
1352## 1.26.2
1353*2019-10-31*
1354
1355### Bug Fixes
1356* Do not create invalid code when using `treeshake: false` and star re-exports (#3209)
1357
1358### Pull Requests
1359* [#3209](https://github.com/rollup/rollup/pull/3209): Also remove export-all declarations when not tree-shaking (@lukastaegert)
1360
1361## 1.26.1
1362*2019-10-31*
1363
1364### Bug Fixes
1365* Prevent an issue where outputs would overwrite files emitted by other outputs (#3201)
1366* Do not throw an error if the config file does not have a .js extension (#3204)
1367
1368### Pull Requests
1369* [#3201](https://github.com/rollup/rollup/pull/3201): Make the CLI run generate/output in serial (@marijnh)
1370* [#3204](https://github.com/rollup/rollup/pull/3204): support all config file extensions (.js,.mjs,...) (@arlac77)
1371
1372## 1.26.0
1373*2019-10-27*
1374
1375### Features
1376* Only warn when no output is provided for an IIFE bundle but still produce valid code (#3181)
1377* Support reexporting namespaces as a binding (#3193)
1378* Switch from hash.js to crypto for hashing in the Node build for better performance and support for very large assets (#3194)
1379
1380### Bug Fixes
1381* Correctly handle chunks reexporting the same namespace as two different bindings (#3193)
1382
1383### Pull Requests
1384* [#3181](https://github.com/rollup/rollup/pull/3181): Remove the need to provide an output name for IIFE bundles (@bterrier)
1385* [#3193](https://github.com/rollup/rollup/pull/3193): Add support for "export * as name from …" (@lukastaegert)
1386* [#3194](https://github.com/rollup/rollup/pull/3194): Add support for large assets (> 100 MB) (@SebastianNiemann)
1387
1388## 1.25.2
1389*2019-10-23*
1390
1391### Bug Fixes
1392* Improve performance of bundled UMD code by adding additional parentheses to enforce eager parsing (#3183)
1393* Improve types to tolerate passing a Rollup config with multiple outputs to `rollup.rollup` (#3184)
1394
1395### Pull Requests
1396* [#3183](https://github.com/rollup/rollup/pull/3183): Add parentheses to factory function of UMD bundles (@ajihyf)
1397* [#3184](https://github.com/rollup/rollup/pull/3184): RollupOptions accept output as array (@imcotton)
1398
1399## 1.25.1
1400*2019-10-20*
1401
1402### Bug Fixes
1403* Handle a situation where code was not included after a switch statement (#3178)
1404* Handle a situation where code was not included after a do-while loop (#3180)
1405* Do not fail if different outputs emit the same file (#3175)
1406* Give access to the original acorn error for parse errors (#3176)
1407
1408### Pull Requests
1409* [#3175](https://github.com/rollup/rollup/pull/3175): Disable errors for duplicate emitted file names (@marijnh)
1410* [#3176](https://github.com/rollup/rollup/pull/3176): Add original parser error to rollup error; Update tests (@gribnoysup)
1411* [#3178](https://github.com/rollup/rollup/pull/3178): Fix switch case not being included correctly (@lukastaegert)
1412* [#3179](https://github.com/rollup/rollup/pull/3179): Update dependencies (@lukastaegert)
1413* [#3180](https://github.com/rollup/rollup/pull/3180): Handle conditional breaks in do-while loops with unconditional return (@lukastaegert)
1414
1415## 1.25.0
1416*2019-10-18*
1417
1418### Features
1419* Remove try-catch if there is no side-effect in the try-block (#3166)
1420* Omit side-effect-free trailing cases in switch-statements (#3166)
1421* Remove unused labels (#3170)
1422
1423### Bug Fixes
1424* Do not remove code after labeled statements that contain a throw or return if the label is used (#3170)
1425* Prevent invalid code when expressions are simplified that do not follow a white-space character (#3173)
1426* Do not remove continue statements inside switch statements (#3166)
1427* Prevent trailing empty lines when tree-shaking inside switch statements (#3166)
1428
1429### Pull Requests
1430* [#3166](https://github.com/rollup/rollup/pull/3166): Better try statement tree shaking (@lukastaegert)
1431* [#3170](https://github.com/rollup/rollup/pull/3170): Handle optional control flow in labeled statements, remove unused labels (@lukastaegert)
1432* [#3173](https://github.com/rollup/rollup/pull/3173): Add missing spaces in certain statements and expressions to avoid invalid code (@lukastaegert)
1433
1434## 1.24.0
1435*2019-10-15*
1436
1437### Features
1438* Respect `break`, `continue`, `return` and `throw` when tree-shaking to detect dead code (#3153)
1439* Do treat treat hoisted function declarations as "unknown" when checking for call side-effects (#3153)
1440
1441### Bug Fixes
1442* Make sure that unknown `import.meta` properties produce valid code in SystemJS (#3152)
1443* Make sure `treeshake.annotations: false` is respected for class instantiation (#3153)
1444* Check property access side-effects for class instantiation (#3153)
1445* Do not suppress break statements inside labeled statements (#3153)
1446
1447### Pull Requests
1448* [#3152](https://github.com/rollup/rollup/pull/3152): Allow import.meta.* for systemjs format (@dmail)
1449* [#3153](https://github.com/rollup/rollup/pull/3153): Get rid of immutable.js and implement tree-shaking for broken control flow (@lukastaegert)
1450
1451## 1.23.1
1452*2019-10-05*
1453
1454### Bug Fixes
1455* Fix a regression where the node types had a specific minimal version (#3143)
1456
1457### Pull Requests
1458* [#3143](https://github.com/rollup/rollup/pull/3143): Ensure that types packages have star version ranges (@lukastaegert)
1459
1460## 1.23.0
1461*2019-10-03*
1462
1463### Features
1464* Add placeholders for extensions when preserving modules (#3116)
1465
1466### Pull Requests
1467* [#3116](https://github.com/rollup/rollup/pull/3116): Include extensions in preserveModules output filenames for scriptified assets (@Andarist)
1468* [#3142](https://github.com/rollup/rollup/pull/3142): Fix typo (@tu4mo)
1469
1470## 1.22.0
1471*2019-09-29*
1472
1473### Features
1474* Add a new "hidden" sourcemap type that generates the map files but omits the sourcemap comment (#3120)
1475* Generate more efficient code when using `namespaceToStringTag: true` (#3135)
1476* Make sure namespace objects do not have a prototype (#3136)
1477
1478### Bug Fixes
1479* Do not ignore side-effectful iterators by always preserving for..of loops for now (#3132)
1480* Make sure `--context` is observed as a CLI option (#3134)
1481* Do not require specific versions for @types dependencies (#3131)
1482
1483### Pull Requests
1484* [#3120](https://github.com/rollup/rollup/pull/3120): Generate sourcemaps but omit the comment (@rohitmohan96)
1485* [#3131](https://github.com/rollup/rollup/pull/3131): Use asterisk for @types/* dependencies (@frenzzy)
1486* [#3132](https://github.com/rollup/rollup/pull/3132): Preserve empty for...of loops (@imatlopez)
1487* [#3133](https://github.com/rollup/rollup/pull/3133): Update dependencies (@lukastaegert)
1488* [#3134](https://github.com/rollup/rollup/pull/3134): Wire up --context CLI flag (@tchetwin)
1489* [#3135](https://github.com/rollup/rollup/pull/3135): Remove Symbol polyfill in module namespaces (@mkubilayk)
1490* [#3136](https://github.com/rollup/rollup/pull/3136): Set null prototype on namespace objects (@rpamely)
1491
1492## 1.21.4
1493*2019-09-16*
1494
1495### Bug Fixes
1496* Recognize common browser globals (#3117)
1497* Do not treat "typeof <global>" as a side-effect (#3117)
1498
1499### Pull Requests
1500* [#3117](https://github.com/rollup/rollup/pull/3117): Add browser globals to known globals and prevent "typeof" side-effects (@lukastaegert)
1501
1502## 1.21.3
1503*2019-09-14*
1504
1505### Bug Fixes
1506* Fix a regression where modifying a watched file did not trigger a rebuild (#3112)
1507
1508### Pull Requests
1509* [#3112](https://github.com/rollup/rollup/pull/3112): Fix .addWatchFile() dependencies failing to invalidate in watch mode (@tivac)
1510
1511## 1.21.2
1512*2019-09-09*
1513
1514### Bug Fixes
1515* Fix wrong deprecation message to direct to `this.emitFile` instead of `this.emitAsset`
1516
1517## 1.21.1
1518*2019-09-09*
1519
1520### Bug Fixes
1521* Allow legacy plugins to still add assets directly to the bundle object (#3105)
1522
1523### Pull Requests
1524* [#3105](https://github.com/rollup/rollup/pull/3105): Allow legacy plugins to still add assets directly to the bundle object (@lukastaegert)
1525
1526## 1.21.0
1527*2019-09-08*
1528
1529### Features
1530* Respect `output.entryFileNames` when preserving modules (#3088)
1531* Make accessing unknown globals a side-effect unless this is deactivated via `treeshake.unknownGlobalSideEffects` (#3068)
1532* Respect global objects when checking for pure global functions (#3068)
1533* Introduce a `type` to more easily distinguish chunks and assets in the output bundle (#3080)
1534
1535### Bug Fixes
1536* Recover in watch mode when the initial build fails (#3081)
1537* Make sure `output.strict` is respected for SystemJS output (#3101)
1538
1539### Pull Requests
1540* [#3068](https://github.com/rollup/rollup/pull/3068): Make accessing unknown globals a side-effect (@lukastaegert)
1541* [#3080](https://github.com/rollup/rollup/pull/3080): OutputBundle Tagged union with 'type = chunk|asset' (@askbeka)
1542* [#3081](https://github.com/rollup/rollup/pull/3081): Watch files onbuild, even if build fails (@mhkeller)
1543* [#3088](https://github.com/rollup/rollup/pull/3088): Add support for entryFileNames pattern used in combination with preserveModules option (@Andarist)
1544* [#3101](https://github.com/rollup/rollup/pull/3101): Remove 'use strict'; from systemjs when strict=false (@askbeka)
1545
1546## 1.20.3
1547*2019-08-28*
1548
1549### Bug Fixes
1550* Make sure file hashes change when a change of the naming pattern leads to a file name change of a dependency (#3083)
1551* Fix several issues where reexporting an external "default" export could lead to invalid or incorrect code (#3084)
1552
1553### Pull Requests
1554* [#3078](https://github.com/rollup/rollup/pull/3078): Add github actions workflow config for windows (@shellscape)
1555* [#3083](https://github.com/rollup/rollup/pull/3083): Properly reflect dependency file names in hash (@lukastaegert)
1556* [#3084](https://github.com/rollup/rollup/pull/3084): Fix "default" reexport issues in non ESM/System formats (@lukastaegert)
1557
1558## 1.20.2
1559*2019-08-25*
1560
1561### Bug Fixes
1562* Avoid an issue where circular namespace reexports would crash Rollup (#3074)
1563
1564### Pull Requests
1565* [#3077](https://github.com/rollup/rollup/pull/3077): Handle namespaces that reexport themselves (@lukastaegert)
1566
1567## 1.20.1
1568*2019-08-22*
1569
1570### Bug Fixes
1571* Fix an issue where variable names inside dynamic import expressions were not rendered correctly (#3073)
1572* Fix type definition to allow a single watcher config as well as an array (#3074)
1573
1574### Pull Requests
1575* [#3073](https://github.com/rollup/rollup/pull/3073): Fix wrong variable name in import expression (@lukastaegert)
1576* [#3074](https://github.com/rollup/rollup/pull/3074): Fixes type definition on watch and Watcher constructor (@MicahZoltu)
1577
1578## 1.20.0
1579*2019-08-21*
1580
1581### Features
1582* Add augmentChunkHash plugin hook to be able to reflect changes in renderChunk in the chunk hash (#2921)
1583
1584### Bug Fixes
1585* Do not mutate the acorn options object (#3051)
1586* Make sure the order of emitted chunks always reflects the order in which they were emitted (#3055)
1587* Do not hang when there are strings containing comment-like syntax in some scenarios (#3069)
1588
1589### Pull Requests
1590* [#2921](https://github.com/rollup/rollup/pull/2921): Add augmentChunkHash plugin hook (@isidrok)
1591* [#2995](https://github.com/rollup/rollup/pull/2995): Add info on installing locally to docs (@mesqueeb)
1592* [#3037](https://github.com/rollup/rollup/pull/3037): Refresh pull request labels (@shellscape)
1593* [#3048](https://github.com/rollup/rollup/pull/3048): Document ROLLUP_WATCH environment variable (@shellscape)
1594* [#3051](https://github.com/rollup/rollup/pull/3051): Avoid changes to the original options (.acorn) object (@LongTengDao)
1595* [#3052](https://github.com/rollup/rollup/pull/3052): Minor refactoring: Remove one try-catch (@KSXGitHub)
1596* [#3053](https://github.com/rollup/rollup/pull/3053): Refactor to use async-await in more places (@KSXGitHub)
1597* [#3055](https://github.com/rollup/rollup/pull/3055): Provide consistent chunking via a consistent order of entry modules when emitting chunks (@lukastaegert)
1598* [#3058](https://github.com/rollup/rollup/pull/3058): Remove acorn-bigint and acorn-dynamic-import from bundle (@LongTengDao)
1599* [#3061](https://github.com/rollup/rollup/pull/3061): Update to acorn@7 (@lukastaegert)
1600* [#3063](https://github.com/rollup/rollup/pull/3063): Auto-generate license file (@lukastaegert)
1601* [#3069](https://github.com/rollup/rollup/pull/3069): Prevent infinite loop when scanning for line-breaks and there are comment-like strings (@lukastaegert)
1602
1603## 1.19.4
1604*2019-08-07*
1605
1606### Bug Fixes
1607* Prevent invalid code when exporting an external namespace (#3034)
1608* Prevent invalid or non-equivalent code when simplifying expressions in return and throw statements (#3035)
1609
1610### Pull Requests
1611* [#3034](https://github.com/rollup/rollup/pull/3034): Avoid generating .* as export (@LongTengDao)
1612* [#3035](https://github.com/rollup/rollup/pull/3035): Prevent ASI errors for conditional expressions (@lukastaegert)
1613* [#3036](https://github.com/rollup/rollup/pull/3036): Fix documents to use https, not http (@giraffate)
1614
1615## 1.19.3
1616*2019-08-06*
1617
1618### Bug Fixes
1619* Fix wrong URLs in error messages (#3033)
1620
1621### Pull Requests
1622* [#3033](https://github.com/rollup/rollup/pull/3033): Fix wrong URLs in error messages (@giraffate)
1623
1624## 1.19.2
1625*2019-08-05*
1626
1627### Bug Fixes
1628* Add bin file to package
1629
1630## 1.19.1
1631*2019-08-05*
1632
1633### Bug Fixes
1634* Remove wrong extension in package.json file (#3031)
1635
1636### Pull Requests
1637* [#3031](https://github.com/rollup/rollup/pull/3031): Fix wrong extension (@lukastaegert)
1638
1639## 1.19.0
1640*2019-08-05*
1641
1642### Features
1643* Implement a new unified file emission API for assets and chunks with support for explicit file names (#2999)
1644* Use the id of the last module in a chunk as base for the chunk name if no better name is available (#3025)
1645* Use the id of the last module in a chunk as base for the variable name of a chunk in some formats if no better name is available (#2999)
1646
1647### Bug Fixes
1648* Do not produce invalid variable names if an empty name is chosen for a virtual module (#3026)
1649* Fix an issue where a module variable name would conflict with a local variable name in some formats (#3020)
1650
1651### Pull Requests
1652* [#2999](https://github.com/rollup/rollup/pull/2999): Unified file emission api (@lukastaegert)
1653* [#3020](https://github.com/rollup/rollup/pull/3020): Switch to a code-splitting build and update dependencies (@lukastaegert)
1654* [#3025](https://github.com/rollup/rollup/pull/3025): Use id of last module in chunk as name base for auto-generated chunks (@lukastaegert)
1655* [#3026](https://github.com/rollup/rollup/pull/3026): Avoid variable from empty module name be empty (@LongTengDao)
1656
1657## 1.18.0
1658*2019-08-01*
1659
1660### Features
1661* Add `externalLiveBindings: false` option to optimize code when live bindings are not needed (#3010)
1662
1663### Pull Requests
1664* [#2997](https://github.com/rollup/rollup/pull/2997): Integrate coverage into CI setup (@lukastaegert)
1665* [#2998](https://github.com/rollup/rollup/pull/2998): Update readme badges (@lukastaegert)
1666* [#3010](https://github.com/rollup/rollup/pull/3010): Add option to prevent code for external live bindings (@lukastaegert)
1667
1668## 1.17.0
1669*2019-07-15*
1670
1671### Features
1672* Allow plugins to access current combined sourcemap in transform hook for coverage instrumentation (#2993)
1673
1674### Pull Requests
1675* [#2987](https://github.com/rollup/rollup/pull/2987): Fix code fences for link (@johanholmerin)
1676* [#2989](https://github.com/rollup/rollup/pull/2989): Bump lodash from 4.17.11 to 4.17.14 (@dependabot)
1677* [#2993](https://github.com/rollup/rollup/pull/2993): Add getCombinedSourceMap in transform plugin context (@billowz)
1678
1679## 1.16.7
1680*2019-07-09*
1681
1682### Bug Fixes
1683* Fix an issue where exported import.meta properties would lead to invalid code (#2986)
1684
1685### Pull Requests
1686* [#2985](https://github.com/rollup/rollup/pull/2985): Improve sourcemap types (@jridgewell)
1687* [#2986](https://github.com/rollup/rollup/pull/2986): Only overwrite content when resolving import.meta properties (@lukastaegert)
1688
1689## 1.16.6
1690*2019-07-04*
1691
1692### Bug Fixes
1693* Do not pass undefined to resolveDynamicImport for unresolvable template literals (#2984)
1694
1695### Pull Requests
1696* [#2984](https://github.com/rollup/rollup/pull/2984): Always forward AST nodes for unresolvable dynamic imports (@lukastaegert)
1697
1698## 1.16.5
1699*2019-07-04*
1700
1701### Bug Fixes
1702* onwarn should still be called when --silent is used (#2982)
1703* Properly clean up watchers for files that are deleted between builds (#2982)
1704
1705### Pull Requests
1706* [#2981](https://github.com/rollup/rollup/pull/2981): Do not skip onwarn handler when --silent is used (@lukastaegert)
1707* [#2982](https://github.com/rollup/rollup/pull/2982): Make tests run on Node 12, fix watcher cleanup issue (@lukastaegert)
1708
1709## 1.16.4
1710*2019-07-02*
1711
1712### Bug Fixes
1713* Do not show a TypeScript error when providing a location as number to this.warn and this.error (#2974)
1714* Use the correct TypeScript type for Sourcemap.version (#2976)
1715
1716### Pull Requests
1717* [#2965](https://github.com/rollup/rollup/pull/2965): Use async readFile in getRollupDefaultPlugin (@kaksmet)
1718* [#2974](https://github.com/rollup/rollup/pull/2974): Align TS types, docs and implementation for this.warn and this.error (@lukastaegert)
1719* [#2976](https://github.com/rollup/rollup/pull/2976): Fix sourcemap type and update dependencies (@lukastaegert)
1720
1721## 1.16.3
1722*2019-06-29*
1723
1724### Bug Fixes
1725* Prevent name conflicts with unused function parameters (#2972)
1726
1727### Pull Requests
1728* [#2972](https://github.com/rollup/rollup/pull/2972): Deconflict unused parameters (@lukastaegert)
1729
1730## 1.16.2
1731*2019-06-22*
1732
1733### Bug Fixes
1734* Properly wrap dynamic imports in Promises that can be caught when generating CJS output (#2958)
1735
1736### Pull Requests
1737* [#2958](https://github.com/rollup/rollup/pull/2958): Make sure errors from dynamic imports can be caught (@lukastaegert)
1738
1739## 1.16.1
1740*2019-06-21*
1741
1742### Pull Requests
1743* [#2956](https://github.com/rollup/rollup/pull/2956): Add missing CLI docs for strictDeprecations (@lukastaegert)
1744
1745## 1.16.0
1746*2019-06-21*
1747
1748### Features
1749* Add strictDeprecations option to throw when currently or upcoming deprecated features are used (#2945)
1750* Keep annotations and comments when simplifying logical and conditional expressions (#2955)
1751
1752### Bug Fixes
1753* Generate proper namespace objects when dynamically importing external dependencies for AMD or CJS formats (#2954)
1754* Fix dynamically imported variables not being resolved correctly when importing from an entry chunk with only a default export (#2954)
1755* Do not reexport default when reexporting a namespace (#2954)
1756
1757### Pull Requests
1758* [#2945](https://github.com/rollup/rollup/pull/2945): Add option to handle use of features marked for deprecation as errors (@lukastaegert)
1759* [#2954](https://github.com/rollup/rollup/pull/2954): Improve dynamic import interop (@lukastaegert)
1760* [#2955](https://github.com/rollup/rollup/pull/2955): Keep annotations and comments when simplifying logical and conditional expressions (@lukastaegert)
1761
1762## 1.15.6
1763*2019-06-16*
1764
1765### Bug Fixes
1766* No longer use an alternate screen in watch mode to allow scrolling (#2942)
1767* Prioritize non-external imports over external ones when resolving conflicting namespace re-exports (#2893)
1768
1769### Pull Requests
1770* [#2893](https://github.com/rollup/rollup/pull/2893): Improve handling of conflicting namespace exports (@aleclarson)
1771* [#2942](https://github.com/rollup/rollup/pull/2942): Get rid of alternate screen and simplify screen clearing (@lukastaegert)
1772
1773## 1.15.5
1774*2019-06-14*
1775
1776### Bug Fixes
1777* Do not include any comments for completely tree-shaken files so that `renderedLength === 0` is a reliable check (#2940)
1778* Do not cause type errors when returning `null` from `resolveId` (#2941)
1779
1780### Pull Requests
1781* [#2940](https://github.com/rollup/rollup/pull/2940): Completely omit files that do not have any included statements (@lukastaegert)
1782* [#2941](https://github.com/rollup/rollup/pull/2941): Explicitly allow null as return value for various hooks (@lukastaegert)
1783
1784## 1.15.4
1785*2019-06-14*
1786
1787### Bug Fixes
1788* Improve how asset and chunk URLs are resolved for UMD, IIFE and CJS output (#2937)
1789
1790### Pull Requests
1791* [#2937](https://github.com/rollup/rollup/pull/2937): Fix URL resolution to work when the current script contains query parameters (@lukastaegert)
1792
1793## 1.15.3
1794*2019-06-13*
1795
1796### Bug Fixes
1797* Always reemit assets and chunks from cached transform hooks (#2936)
1798
1799### Pull Requests
1800* [#2936](https://github.com/rollup/rollup/pull/2936): Fix repeated re-emission of files emitted from a transform hook (@lukastaegert)
1801
1802## 1.15.2
1803*2019-06-13*
1804
1805### Bug Fixes
1806* Make sure chunks emitted from transform hooks are also emitted for incremental builds in watch mode (#2933)
1807
1808### Pull Requests
1809* [#2933](https://github.com/rollup/rollup/pull/2933): Reemit chunks emitted from transform hooks (@lukastaegert)
1810
1811## 1.15.1
1812*2019-06-11*
1813
1814### Bug Fixes
1815* Do not fail when reexporting variables in dynamic entry points from other chunks (#2928)
1816
1817### Pull Requests
1818* [#2928](https://github.com/rollup/rollup/pull/2928): Handle reexports from dynamic entries across chunk (@lukastaegert)
1819
1820## 1.15.0
1821*2019-06-11*
1822
1823### Features
1824* Tone down try-catch deoptimization while maintaining polyfill support (#2918)
1825
1826### Bug Fixes
1827* Handle feature detection with "typeof" for regular expressios (#2916)
1828* Deoptimize `'' + variable'` type coercion as expression statement for feature detection (#2917)
1829* Always observe argument side-effects when tree-shaking (#2924)
1830
1831### Pull Requests
1832* [#2916](https://github.com/rollup/rollup/pull/2916): Deoptimize typeof for regular expression literals to better support es6-shim (@lukastaegert)
1833* [#2917](https://github.com/rollup/rollup/pull/2917): Support implicit type coercion errors in es5-shim (@lukastaegert)
1834* [#2918](https://github.com/rollup/rollup/pull/2918): Deoptimize try-catch less radically (@lukastaegert)
1835* [#2924](https://github.com/rollup/rollup/pull/2924): Do not tree-shake arguments with side-effects (@lukastaegert)
1836
1837## 1.14.6
1838*2019-06-10*
1839
1840### Bug Fixes
1841* Fix an issue where call arguments were not included in try statements (#2914)
1842
1843### Pull Requests
1844* [#2914](https://github.com/rollup/rollup/pull/2914): Properly include try statements for each pass when deoptimization is deactivated (@lukastaegert)
1845
1846## 1.14.5
1847*2019-06-09*
1848
1849### Bug Fixes
1850* Keep external ids unmodified when using the object form of resolveId (#2907)
1851* Cache dynamic import resolutions when using Rollup cache (#2908)
1852* Keep all necessary parentheses when tree-shaking call arguments (#2911)
1853
1854### Pull Requests
1855* [#2906](https://github.com/rollup/rollup/pull/2906): Update dependencies (@lukastaegert)
1856* [#2907](https://github.com/rollup/rollup/pull/2907): Do not renormalize external ids when using the object form (@lukastaegert)
1857* [#2908](https://github.com/rollup/rollup/pull/2908): Cache dynamic ids if possible (@lukastaegert)
1858* [#2911](https://github.com/rollup/rollup/pull/2911): Fix treeshaken parameters around parentheses (@manucorporat)
1859
1860## 1.14.4
1861*2019-06-07*
1862
1863### Bug Fixes
1864* Do not omit external re-exports for `moduleSideEffects: false` (#2905)
1865
1866### Pull Requests
1867* [#2905](https://github.com/rollup/rollup/pull/2905): Make sure external re-exports are included for moduleSideEffects: false (@lukastaegert)
1868
1869## 1.14.3
1870*2019-06-06*
1871
1872### Bug Fixes
1873* Generate correct external imports when importing from a directory that would be above the root of the current working directory (#2902)
1874
1875### Pull Requests
1876* [#2902](https://github.com/rollup/rollup/pull/2902): Use browser relative path algorithm for chunks (@lukastaegert)
1877
1878## 1.14.2
1879*2019-06-05*
1880
1881### Bug Fixes
1882* Prevent unnecessary inclusion of external namespace import in certain situations (#2900)
1883
1884### Pull Requests
1885* [#2900](https://github.com/rollup/rollup/pull/2900): Handle early bind for member expressions (@lukastaegert)
1886
1887## 1.14.1
1888*2019-06-05*
1889
1890### Bug Fixes
1891* Fix an issue where try-statements were not included properly when a variable declared inside the statement was accessed outside it (#2898)
1892* Fix an issue where `await` expressions were not included properly (#2899)
1893
1894### Pull Requests
1895* [#2898](https://github.com/rollup/rollup/pull/2898): Properly include try-catch-statements even if they have already been included in some way (@lukastaegert)
1896* [#2899](https://github.com/rollup/rollup/pull/2899): Fix unintended early return in await inclusion handling (@lukastaegert)
1897
1898## 1.14.0
1899*2019-06-05*
1900
1901### Features
1902* Deoptimize code inside and called from try-statements for feature detection (#2892)
1903* Tree-shake unused call arguments (#2892)
1904
1905### Pull Requests
1906* [#2892](https://github.com/rollup/rollup/pull/2892): Implement try-statement-deoptimization for feature detection, tree-shake unused arguments (@lukastaegert)
1907
1908
1909## 1.13.1
1910*2019-06-01*
1911
1912### Bug Fixes
1913* Avoid conflicts between top-level module, require etc. and CommonJS runtimes (#2889)
1914
1915### Pull Requests
1916* [#2888](https://github.com/rollup/rollup/pull/2888): Enable full TypeScript strict mode (@lukastaegert)
1917* [#2889](https://github.com/rollup/rollup/pull/2889): Protect all module globals for CJS output from being redefined (@lukastaegert)
1918
1919## 1.13.0
1920*2019-05-31*
1921
1922### Features
1923* Omit `exports` and `module` from SystemJS wrapper if possible (#2880)
1924* Try to use the first letters of names when mangling exports (#2885)
1925
1926### Bug Fixes
1927* Avoid conflicts with local variables when using format specific globals to render dynamic imports and file URLs (#2880)
1928* Do not produce undefined reexports when reexporting from entry points (#2885)
1929
1930### Pull Requests
1931* [#2880](https://github.com/rollup/rollup/pull/2880): Deconflict global variables used inside format-specific code (@lukastaegert)
1932* [#2885](https://github.com/rollup/rollup/pull/2885): Do not produce undefined reexports when reexporting from entry points and refactor chunk linking (@lukastaegert)
1933
1934## 1.12.5
1935*2019-05-30*
1936
1937### Pull Requests
1938* [#2884](https://github.com/rollup/rollup/pull/2884): Update pluginutils for new micormatch and reduced bundle size (@lukastaegert)
1939
1940## 1.12.4
1941*2019-05-27*
1942
1943### Bug Fixes
1944* Show correct error stack trace for errors throw in "load" hooks (#2871)
1945
1946### Pull Requests
1947* [#2875](https://github.com/rollup/rollup/pull/2875): Mention subfolders in docs (@lukastaegert)
1948* [#2871](https://github.com/rollup/rollup/pull/2871): Reserve error stack information (@LongTengDao)
1949
1950## 1.12.3
1951*2019-05-19*
1952
1953### Bug Fixes
1954* Prevent duplicate imports when exports are reexported as default exports (#2866)
1955
1956### Pull Requests
1957* [#2755](https://github.com/rollup/rollup/pull/2755): Enable TypeScript strictNullChecks (@edsrzf)
1958* [#2866](https://github.com/rollup/rollup/pull/2866): Properly deduplicate reexported default exports (@lukastaegert)
1959
1960## 1.12.2
1961*2019-05-17*
1962
1963### Bug Fixes
1964* Do not fail when using clearScreen:false in watchMode (#2858)
1965* Properly resolve star reexports when preserving modules (#2860)
1966
1967### Pull Requests
1968* [#2858](https://github.com/rollup/rollup/pull/2858): Declare processConfigsErr before use (@humphd)
1969* [#2860](https://github.com/rollup/rollup/pull/2860): Keep nested exports with preserveModules (@TomCaserta)
1970* [#2864](https://github.com/rollup/rollup/pull/2864): Cache transitive reexport detection (@lukastaegert)
1971
1972## 1.12.1
1973*2019-05-16*
1974
1975### Bug Fixes
1976* Extend file name sanitation to also replace "?" and "*" e.g. when preserving modules with the updated commonjs plugin (#2860)
1977* Do not ignore module transformer that return an empty string (#2861)
1978
1979### Pull Requests
1980* [#2860](https://github.com/rollup/rollup/pull/2860): Update to latest plugins and extend file name sanitation (@lukastaegert)
1981* [#2861](https://github.com/rollup/rollup/pull/2861): Allow transformers to return an empty string (@lukastaegert)
1982
1983## 1.12.0
1984*2019-05-15*
1985
1986### Features
1987* Add `treeshake.moduleSideEffects` option to allow removing empty imports without a side-effect check (#2844)
1988* Extend plugin API to allow marking modules as side-effect-free (#2844)
1989* Extend `this.resolve` plugin context function with an option to skip the `resolveId` hook of the calling plugin (#2844)
1990* Add `isEntry` flag to `this.getModuleInfo` plugin context function (#2844)
1991* Distribute Rollup as optimized ES2015 code (#2851)
1992
1993### Pull Requests
1994* [#2844](https://github.com/rollup/rollup/pull/2844): Add options and hooks to control module side effects (@lukastaegert)
1995* [#2851](https://github.com/rollup/rollup/pull/2851): Switch to ES2015 output (@lukastaegert)
1996
1997## 1.11.3
1998*2019-05-05*
1999
2000### Bug Fixes
2001* Quote es3 keywords in namespace objects (#2825)
2002
2003### Pull Requests
2004* [#2825](https://github.com/rollup/rollup/pull/2825): Add es3 support for namespace object import (@sormy)
2005
2006## 1.11.2
2007*2019-05-04*
2008
2009### Bug Fixes
2010* Prevent a crash when handling circular namespace exports (#2836)
2011
2012### Pull Requests
2013* [#2836](https://github.com/rollup/rollup/pull/2836): Make sure circular `export * from X` does not stack overflow (@Swatinem)
2014
2015## 1.11.1
2016*2019-05-04*
2017
2018### Bug Fixes
2019* Fix an issue where rendered exports were reported as "removed" in the bundle information (#2835)
2020
2021### Pull Requests
2022* [#2835](https://github.com/rollup/rollup/pull/2835): Fix `removedExports` to correctly track the exported item (@Swatinem)
2023
2024## 1.11.0
2025*2019-05-03*
2026
2027### Features
2028* Add `emitChunk` plugin context function to emit additional entry chunks that can be referenced from the code (#2809)
2029* Allow `manualChunks` to be a function (#2831)
2030* Omit `.js` extensions in AMD imports to make sure an AMD `baseUrl` would work (#2809)
2031* Automatically use the name of the imported module as a base for dynamically imported chunks (#2809)
2032* Add `resolveFileUrl` plugin hook to replace `resolveAssetUrl` and handle emitted chunks as well (#2809)
2033* Add `resolve` plugin hook to replace `resolveId` and `isExternal` that returns an object (#2829)
2034* Allow `resolveDynamicImport` to return an `{id, external}` object to also resolve unresolvable dynamic imports to a module (#2829)
2035
2036### Bug Fixes
2037* Do not create invalid code if a dynamic import contains nothing but reexports (#2809)
2038* Do not fail if modules that define a manual chunk depend on each other (#2809)
2039* Do not fail if a module that defines a manual chunk is the dependency of a module defining a different manual chunk (#2809)
2040* No longer fail for unnamed duplicate entry points but combine them (#2809)
2041* Always return `string | null` from `this.resolveId` even if some `resolveId` hooks return objects (#2829)
2042* Show proper warnings when `resolveDynamicImport` resolves to a non-external module that does not exist (#2829)
2043
2044### Pull Requests
2045* [#2809](https://github.com/rollup/rollup/pull/2809): Add hook for dynamic entry chunk emission (@lukastaegert)
2046* [#2821](https://github.com/rollup/rollup/pull/2821): Fix syntax error in documentation (@FFxSquall)
2047* [#2829](https://github.com/rollup/rollup/pull/2829): Improve id resolution (@lukastaegert)
2048* [#2831](https://github.com/rollup/rollup/pull/2831): Allow manualChunks to be a function (@lukastaegert)
2049* [#2832](https://github.com/rollup/rollup/pull/2832): Improve `generateBundle` documentation (@lukastaegert)
2050* [#2833](https://github.com/rollup/rollup/pull/2833): Update dependencies (@lukastaegert)
2051
2052## 1.10.1
2053*2019-04-19*
2054
2055### Bug Fixes
2056* Invalid options.format values will now trigger a helpful error (#2813)
2057
2058### Pull Requests
2059* [#2812](https://github.com/rollup/rollup/pull/2812): Minor documentation update (@dnalborczyk)
2060* [#2813](https://github.com/rollup/rollup/pull/2813): Catch invalid options.format values (@marijnh)
2061* [#2816](https://github.com/rollup/rollup/pull/2816): Update all dependencies to fix security issues (@lukastaegert)
2062
2063## 1.10.0
2064*2019-04-11*
2065
2066### Features
2067* Improve generated code to polyfill `import.meta.url` (#2785)
2068* Add plugin hook to configure handling of `import.meta` (#2785)
2069* Improve generated code when accessing URLs of emitted assets (#2796)
2070* Add plugin hook to configure the generated code when accessing URLs of emitted assets (#2796)
2071
2072### Bug Fixes
2073* No longer resolve assets to their parent URL in some cases (#2796)
2074
2075### Pull Requests
2076* [#2785](https://github.com/rollup/rollup/pull/2785): Refactor handling of import.meta.url and add option to configure behaviour (@lukastaegert)
2077* [#2796](https://github.com/rollup/rollup/pull/2796): Improve and fix asset emission (@lukastaegert)
2078
2079## 1.9.3
2080*2019-04-10*
2081
2082### Bug Fixes
2083* Simplify return expressions that are evaluated before the surrounding function is bound (#2803)
2084
2085### Pull Requests
2086* [#2803](https://github.com/rollup/rollup/pull/2803): Handle out-of-order binding of identifiers to improve tree-shaking (@lukastaegert)
2087
2088## 1.9.2
2089*2019-04-10*
2090
2091### Bug Fixes
2092* Allowing replacing `output.file` with `output.dir` in the `outputOptions` hook (#2802)
2093
2094### Pull Requests
2095* [#2802](https://github.com/rollup/rollup/pull/2802): Observe modified output options in bundle.write (@lukastaegert)
2096
2097## 1.9.1
2098*2019-04-10*
2099
2100### Bug Fixes
2101* Make sure inline comments in dynamic imports are preserved (#2797)
2102
2103### Pull Requests
2104* [#2797](https://github.com/rollup/rollup/pull/2797): Emit inline comments inside dynamic import (@manucorporat)
2105
2106## 1.9.0
2107*2019-04-05*
2108
2109### Features
2110* Add built-in support for bigint (#2789)
2111
2112### Pull Requests
2113* [#2789](https://github.com/rollup/rollup/pull/2789): Ship with bigint support built-in (@danielgindi)
2114* [#2791](https://github.com/rollup/rollup/pull/2791): Use shared extractAssignedNames from rollup-pluginutils (@lukastaegert)
2115* [#2792](https://github.com/rollup/rollup/pull/2792): Test that rollup-plugin-commonjs works with preserveModules (@lukastaegert)
2116
2117## 1.8.0
2118*2019-04-02*
2119
2120### Features
2121* Support `module` as alias for `esm` and `commonjs` for `cjs` to match Node (#2783)
2122
2123### Pull Requests
2124* [#2782](https://github.com/rollup/rollup/pull/2782): Inline interopDefault in config loading (@guybedford)
2125* [#2783](https://github.com/rollup/rollup/pull/2783): Support Node-style format aliases (@guybedford)
2126
2127## 1.7.4
2128*2019-03-28*
2129
2130### Bug Fixes
2131* Improve TypeScript type of the treeshaking options (#2779)
2132
2133### Pull Requests
2134* [#2779](https://github.com/rollup/rollup/pull/2779): Make all properties in TreeshakingOptions optional (@ndelangen)
2135
2136## 1.7.3
2137*2019-03-24*
2138
2139### Bug Fixes
2140* Use getters when re-exporting live-bindings (#2765)
2141
2142### Pull Requests
2143* [#2765](https://github.com/rollup/rollup/pull/2765): Support exporting live-bindings from other chunks or external dependencies (@lukastaegert)
2144
2145## 1.7.2
2146*2019-03-24*
2147
2148### Bug Fixes
2149* Make sure relative external ids are resolved correctly (#2774)
2150
2151### Pull Requests
2152* [#2774](https://github.com/rollup/rollup/pull/2774): Resolve relative external ids (@lukastaegert)
2153
2154## 1.7.1
2155*2019-03-24*
2156
2157### Bug Fixes
2158* Prevent invalid code when exporting several hundred identifiers from a chunk (#2768)
2159* Do not wrongly deconflict labels (#2776)
2160
2161### Pull Requests
2162* [#2768](https://github.com/rollup/rollup/pull/2768): Sanitize shortened internal export names (@lukastaegert)
2163* [#2769](https://github.com/rollup/rollup/pull/2769): Update dependencies and fix security issue (@lukastaegert)
2164* [#2776](https://github.com/rollup/rollup/pull/2776): Do not treat break labels as identifiers (@lukastaegert)
2165
2166## 1.7.0
2167*2019-03-20*
2168
2169### Features
2170* Sort chunk exports by name for greater consistency (#2757)
2171
2172### Bug Fixes
2173* Fix a situation where tree-shakeable code would not be removed in an indeterminate manner (#2757)
2174
2175### Pull Requests
2176* [#2757](https://github.com/rollup/rollup/pull/2757): Sort modules before binding, sort exports (@lukastaegert)
2177
2178## 1.6.1
2179*2019-03-20*
2180
2181### Bug Fixes
2182* Avoid name clashes of unused default exports when tree-shaking is false (#2758)
2183* Do not crash when generating SystemJS bundles containing array patterns with member expressions (#2760)
2184
2185### Pull Requests
2186* [#2758](https://github.com/rollup/rollup/pull/2758): Make sure unused default exports are deconflicted when tree-shaking is false (@lukastaegert)
2187* [#2760](https://github.com/rollup/rollup/pull/2760): Handle member expressions in array patterns (@lukastaegert)
2188
2189## 1.6.0
2190*2019-03-08*
2191
2192### Features
2193* Add plugin hook to modify output options (#2736)
2194
2195### Pull Requests
2196* [#2736](https://github.com/rollup/rollup/pull/2736): Add hook for modifying OutputOptions (@Comandeer)
2197
2198## 1.5.0
2199*2019-03-07*
2200
2201### Features
2202* Allow resolving to a different id while marking it as external at the same time (#2734)
2203
2204### Pull Requests
2205* [#2734](https://github.com/rollup/rollup/pull/2734): Allow resolveId to return an object (@lukastaegert)
2206
2207## 1.4.2
2208*2019-03-07*
2209
2210### Bug Fixes
2211* Respect variable identity of exports when hashing (#2741)
2212* Resolve a situations where a variable was imported twice with the same name (#2737)
2213
2214### Pull Requests
2215* [#2741](https://github.com/rollup/rollup/pull/2741): Fix hashing when different variable are exported using the same name (@lukastaegert)
2216* [#2737](https://github.com/rollup/rollup/pull/2737): Fix duplicate imports with conflicting names (@lukastaegert)
2217
2218## 1.4.1
2219*2019-03-04*
2220
2221### Bug Fixes
2222* Do not treat the import target "" as external by default (#2733)
2223
2224### Pull Requests
2225* [#2733](https://github.com/rollup/rollup/pull/2733): Do not treat the import target "" as external by default (@LongTengDao)
2226
2227## 1.4.0
2228*2019-03-01*
2229
2230### Features
2231* Add option to change the name of the dynamic import function to allow polyfilling it (#2723)
2232
2233### Pull Requests
2234* [#2723](https://github.com/rollup/rollup/pull/2723): Add dynamicImportFunction option (@keithamus)
2235
2236## 1.3.3
2237*2019-03-01*
2238
2239### Bug Fixes
2240* Fix performance regression when handling long chains of calls to property methods (#2732)
2241
2242### Pull Requests
2243* [#2730](https://github.com/rollup/rollup/pull/2730): Order types, interfaces, classes, and object members (@lukastaegert)
2244* [#2732](https://github.com/rollup/rollup/pull/2732): Take chunk export mode into account when reexporting default (@lukastaegert)
2245
2246## 1.3.2
2247*2019-02-27*
2248
2249### Bug Fixes
2250* Allow ids of default exported classes to be exported separately (#2728)
2251
2252### Pull Requests
2253* [#2728](https://github.com/rollup/rollup/pull/2728): Update dependencies (@lukastaegert)
2254
2255## 1.3.1
2256*2019-02-27*
2257
2258### Bug Fixes
2259* Correctly reexport the default export from entry chunks (#2727)
2260
2261### Pull Requests
2262* [#2727](https://github.com/rollup/rollup/pull/2727): Take chunk export mode into account when reexporting default (@lukastaegert)
2263
2264## 1.3.0
2265*2019-02-26*
2266
2267### Features
2268* Treeshake call expressions prefixed with UglifyJS style `@__PURE__` annotations (#2429)
2269
2270### Pull Requests
2271* [#2429](https://github.com/rollup/rollup/pull/2429): Add support for /*#__PURE__*/ comments (@conartist6 and @lukastaegert)
2272
2273## 1.2.5
2274*2019-02-26*
2275
2276### Bug Fixes
2277* Store external ids reported by plugins in watch mode (#2718)
2278
2279### Pull Requests
2280* [#2718](https://github.com/rollup/rollup/pull/2718): Incremental external (@andreas-karlsson)
2281
2282## 1.2.4
2283*2019-02-26*
2284
2285### Bug Fixes
2286* Fix an issue where a variable was imported twice under the same name (#2715)
2287
2288### Pull Requests
2289* [#2715](https://github.com/rollup/rollup/pull/2715): Deduplicate imports referencing default exports and their original variables (@lukastaegert)
2290
2291## 1.2.3
2292*2019-02-23*
2293
2294### Bug Fixes
2295* Use correct path when rendering dynamic imports where the entry module is empty (#2714)
2296
2297### Pull Requests
2298* [#2714](https://github.com/rollup/rollup/pull/2714): Properly render dynamic imports when imported module is empty (@lukastaegert)
2299
2300## 1.2.2
2301*2019-02-19*
2302
2303### Bug Fixes
2304* Fix wrong external imports when using the `paths` options only for some outputs (#2706)
2305
2306### Pull Requests
2307* [#2706](https://github.com/rollup/rollup/pull/2706): Always recreate paths for external modules (@lukastaegert)
2308
2309## 1.2.1
2310*2019-02-17*
2311
2312### Bug Fixes
2313* Fix ESM version of Rollup (#2705)
2314
2315### Pull Requests
2316* [#2705](https://github.com/rollup/rollup/pull/2705): Fix ESM version of Rollup (@lukastaegert)
2317
2318## 1.2.0
2319*2019-02-17*
2320
2321### Features
2322* Fewer renamed variables due to a completely reimplemented deconflicting logic (#2689)
2323
2324### Bug Fixes
2325* Respect rendered and tree-shaken exports when determining chunk hashes (#2695)
2326* Fix an error when dynamic imports end up in the same chunk as one of their importees (#2677)
2327* Do not generate invalid code when expressions containing IIFEs are simplified (#2696)
2328* Do not throw an error when more than ten bundles are watched (#2700)
2329* Treat re-exported globals in a spec-compliant way (#2691)
2330* Fix issues related to wrongly renamed variables (#2689)
2331* Do not throw an error if config files contain non-default exports (#2673)
2332* Improve type of `RollupOutput.output` to guarantee at least one chunk (#2679)
2333
2334### Pull Requests
2335* [#2673](https://github.com/rollup/rollup/pull/2673): Allow config files to have non-default exports (@swansontec)
2336* [#2677](https://github.com/rollup/rollup/pull/2677): Prevent final resolution and facade creation for inlined dynamic imports (@Rich-Harris and @lukastaegert)
2337* [#2679](https://github.com/rollup/rollup/pull/2679): Improve type of `RollupOutput.output` (@MattiasBuelens)
2338* [#2689](https://github.com/rollup/rollup/pull/2689): Reimplement variable deconflicting logic (@lukastaegert)
2339* [#2691](https://github.com/rollup/rollup/pull/2691): Fix CI issues and update acorn dependency (@lukastaegert)
2340* [#2693](https://github.com/rollup/rollup/pull/2693): Fix typo in export-globals test (@MattiasBuelens)
2341* [#2695](https://github.com/rollup/rollup/pull/2695): Respect rendered exports when generating chunk hashes (@lukastaegert)
2342* [#2696](https://github.com/rollup/rollup/pull/2696): Correctly render function expression inside simplified expression statements (@lukastaegert)
2343* [#2700](https://github.com/rollup/rollup/pull/2700): Add a fix for MaxListenersExceededWarning (@luwes)
2344* [#2703](https://github.com/rollup/rollup/pull/2703): Update rollup-pluginutils (@lukastaegert)
2345
2346## 1.1.2
2347*2019-01-21*
2348
2349### Bug Fixes
2350* Tree-shaken dynamic imports no longer leave behind `undefined` entries in the bundle information (#2663)
2351* Dynamic imports in dynamically imported files could lead to crashes and would not always create new chunks (#2664)
2352
2353### Pull Requests
2354* [#2663](https://github.com/rollup/rollup/pull/2663): Do not include tree-shaken dynamic imports in bundle information (@lukastaegert)
2355* [#2664](https://github.com/rollup/rollup/pull/2664): Properly handle dynamic imports declared in dynamically imported files (@everdimension)
2356
2357## 1.1.1
2358*2019-01-19*
2359
2360### Bug Fixes
2361* Make sure object prototype methods are not considered to be falsy when tree-shaking (#2652)
2362
2363### Pull Requests
2364* [#2652](https://github.com/rollup/rollup/pull/2652): Make sure object prototype methods are not considered to be falsy (@lukastaegert)
2365* [#2654](https://github.com/rollup/rollup/pull/2654): Use correct signature for `this.setAssetSource` in docs (@everdimension)
2366* [#2656](https://github.com/rollup/rollup/pull/2656): Swap descriptions for `[extname]` and `[ext]` in docs (@tivac)
2367
2368## 1.1.0
2369*2019-01-09*
2370
2371### Features
2372* Make `this.meta` available from the `options` plugin hook (#2642)
2373* Add a new `writeBundle` plugin hook that is called *after* all files have been written (#2643)
2374
2375### Bug Fixes
2376* Make sure the `acorn` import of the bundled non-ESM acorn plugins is correctly translated to ESM (#2636)
2377* Make sure input options are actually passed to the `buildStart` hook (#2642)
2378
2379### Pull Requests
2380* [#2636](https://github.com/rollup/rollup/pull/2636): Improve how acorn is imported, update dependencies (@lukastaegert)
2381* [#2642](https://github.com/rollup/rollup/pull/2642): Make this.meta available in options hook, pass input options to buildStart (@lukastaegert)
2382* [#2643](https://github.com/rollup/rollup/pull/2643): Implement writeBundle hook (@lukastaegert)
2383
2384## 1.0.2
2385*2019-01-05*
2386
2387### Bug Fixes
2388* Make sure the transform hook is always reevaluated when a file watched by the hook changes (#2633)
2389* Fix a crash when generating hashes for tree-shaken dynamic imports (#2638)
2390* Fix a crash and some inconsistencies when using the acorn-bigint plugin (#2640)
2391
2392### Pull Requests
2393* [#2633](https://github.com/rollup/rollup/pull/2633): Document `this.addWatchFile` and make sure it also declares transform dependencies (@lukastaegert)
2394* [#2635](https://github.com/rollup/rollup/pull/2635): Make sure `code` is optional in warning type (@lukastaegert)
2395* [#2638](https://github.com/rollup/rollup/pull/2638): Do not fail when generating hashes for tree-shaken dynamic imports (@lukastaegert)
2396* [#2640](https://github.com/rollup/rollup/pull/2640): Always treat bigints as unknown (@lukastaegert)
2397* [#2641](https://github.com/rollup/rollup/pull/2641): Make sure all CLI options are listed in the summary (@lukastaegert)
2398
2399## 1.0.1
2400*2019-01-03*
2401
2402### Bug Fixes
2403* Properly handle reexporting an external default export for non-ESM targets when using named exports mode (#2620)
2404* Do not (wrongly) re-declare input options in the merged `RollupOptions` type (#2622)
2405
2406### Pull Requests
2407* [#2620](https://github.com/rollup/rollup/pull/2620): Fixed issue with reexporting default as default with `{exports: named, interop: true}` options (@Andarist)
2408* [#2622](https://github.com/rollup/rollup/pull/2622): Simplify RollupOptions (@Kinrany)
2409* [#2627](https://github.com/rollup/rollup/pull/2627): Show how to skip imports for optional plugins (@chris-morgan)
2410
2411## 1.0.0
2412*2018-12-28*
2413
2414### Breaking Changes
2415* Several (mostly deprecated) options have been removed or renamed (#2293, #2409):
2416 - banner -> output.banner
2417 - dest -> output.file
2418 - entry -> input
2419 - experimentalCodeSplitting -> now always active
2420 - experimentalDynamicImport -> now always active
2421 - experimentalPreserveModules -> preserveModules
2422 - exports -> output.exports
2423 - extend -> output.extend
2424 - footer -> output.footer
2425 - format -> output.format
2426 - freeze -> output.freeze
2427 - globals -> output.globals
2428 - indent -> output.indent
2429 - interop -> output.interop
2430 - intro -> output.intro
2431 - load -> use plugin API
2432 - moduleName -> output.name
2433 - name -> output.name
2434 - noConflict -> output.noConflict
2435 - output.moduleId -> output.amd.id
2436 - outro -> output.outro
2437 - paths -> output.paths
2438 - preferConst -> output.preferConst
2439 - pureExternalModules -> treeshake.pureExternalModules
2440 - resolveExternal -> use plugin API
2441 - resolveId -> use plugin API
2442 - sourcemap -> output.sourcemap
2443 - sourceMap -> output.sourcemap
2444 - sourceMapFile -> output.sourcemapFile
2445 - strict -> output.strict
2446 - targets -> use output as an array
2447 - transform -> use plugin API
2448 - useStrict -> output.strict
2449* In general, output options can no longer be used as input options (#2409)
2450* `bundle.generate` and `bundle.write` now return a new format (#2293)
2451* Several plugin hooks have become deprecated and will display warnings when used (#2409):
2452 - transformBundle
2453 - transformChunk
2454 - ongenerate
2455 - onwrite
2456* Plugin transform dependencies are deprecated in favour of using the `this.addWatchFile` plugin context function (#2409)
2457* Accessing `this.watcher` in plugin hooks is deprecated in favour of the `watchChange` plugin hook and the `this.addWatchFile` plugin context function (#2409)
2458* Using dynamic import statements will by default create a new chunk unless `inlineDynamicImports` is used (#2293)
2459* 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)
2460
2461### Features
2462* The `--dir` ClI option can now be aliased as `-d` (#2293)
2463* The `--input` option now supports named entry points via `=` (#2293)
2464
2465### Bug Fixes
2466* Both the `--input` option as well as the default CLI option now support named inputs (#2293)
2467
2468### Pull Requests
2469* [#2293](https://github.com/rollup/rollup/pull/2293): Unify code paths for 1.0 relase and update documentation (@guybedford and @lukastaegert)
2470* [#2409](https://github.com/rollup/rollup/pull/2409): Remove old deprecated features and add new deprecation warnings (@guybedford)
2471* [#2486](https://github.com/rollup/rollup/pull/2486): Upgrade to acorn 6 (@marijnh)
2472* [#2611](https://github.com/rollup/rollup/pull/2611): Fix hook's name in test description (@Andarist)
2473* [#2612](https://github.com/rollup/rollup/pull/2612): Fix a self-contradicting comment in the docs (@LongTengDao)
2474
2475## 0.68.2
2476*2018-12-23*
2477
2478### Bug Fixes
2479* Do not assume hoisted variables to have been initialized (#2607)
2480
2481### Pull Requests
2482* [#2607](https://github.com/rollup/rollup/pull/2607): Fix an issues where hoisted variables were assumed to have been initialized (@lye)
2483
2484## 0.68.1
2485*2018-12-19*
2486
2487### Bug Fixes
2488* Fix an issue with UMD wrappers where a variable is used without being defined (#2600)
2489
2490### Pull Requests
2491* [#2600](https://github.com/rollup/rollup/pull/2600): Fix UMD and IIFE wrapper issues and add comprehensive functional wrapper tests (@lukastaegert)
2492
2493## 0.68.0
2494*2018-12-16*
2495
2496### Breaking Changes
2497* `optimizeChunks` is renamed to `experimentalOptimizeChunks` to reflect this feature is not production-ready yet (#2575)
2498
2499### Features
2500* Plugins can iterate all module ids via `this.moduleIds` (#2565)
2501* Plugins can get graph information about a module via `this.getModuleInfo(id)` (#2565)
2502* Plugins and JS API users get more information about the generated chunks: `dynamicImports`, `facadeModuleId`, `isDynamicEntry`, `name` (#2575)
2503* Tree-shaken dynamic imports will no longer create chunks or influence chunking in any way (#2575)
2504* Dynamic imports will no longer follow the `entryFileNames` but the `chunkFileNames` property reflecting those are solely internally used (#2575)
2505* If there are chunk naming conflicts, entry chunks will always take precedence (#2575)
2506* If an entry facade is created, only the facade chunk is marked as `isEntry` (#2575)
2507* 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)
2508* Chunks no longer contain imports for variables that are tree-shaken in the chunk but used in other chunks (#2584)
2509* Chunks will always import re-exported variables directly from the chunk where they are originally exported from (#2584)
2510* 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)
2511* Simplify the UMD wrapper code as much as possible, especially if there are no exports (#2594)
2512* The UMD wrapper will now work in strict mode by checking for `self` before `this` when determining the global variable (#2594)
2513
2514### Bug Fixes
2515* If a facade is created for a dynamic entry point, this facade will be imported instead of the facaded chunk (#2575)
2516* Manual chunks that include multiple entry points will have proper facades created for all entry points if necessary (#2575)
2517* 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)
2518* Missing export shims work properly in SystemJS (#2584)
2519* `preserveModules` now handles dynamic namespace imports (#2584)
2520* Fix chunk execution order in certain scenarios (#2584)
2521* Exports and assignments using destructuring syntax will properly update the exported variables when generating SystemJS output (#2587)
2522* Hashes in chunk names will now also take dynamic imports into account (#2596)
2523
2524### Pull Requests
2525* [#2565](https://github.com/rollup/rollup/pull/2565): Provide module graph information on the plugin context (@samccone)
2526* [#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)
2527* [#2577](https://github.com/rollup/rollup/pull/2577): Update dependencies (@lukastaegert)
2528* [#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)
2529* [#2587](https://github.com/rollup/rollup/pull/2587): Support exports using destructuring declarations and assignments in SystemJS (@lukastaegert)
2530* [#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)
2531* [#2594](https://github.com/rollup/rollup/pull/2594): Simplify UMD wrapper code and make sure it works in strict mode (@lukastaegert)
2532* [#2596](https://github.com/rollup/rollup/pull/2596): Take both static and dynamic dependencies into account when calculating hashes (@lukastaegert)
2533
2534## 0.67.4
2535*2018-12-03*
2536
2537### Bug Fixes
2538* Prevent corrupt source maps for files with very long lines (#2571)
2539
2540### Pull Requests
2541* [#2571](https://github.com/rollup/rollup/pull/2571): Fix an issue with long lines in sourcemaps (@mislav)
2542
2543## 0.67.3
2544*2018-11-17*
2545
2546### Bug Fixes
2547* Make sure the ESM browser build is actually published to npm (#2560)
2548* Throw proper error when using `inlineDynamicImports` with `experimentalPreserveModules` (#2560)
2549
2550### Pull Requests
2551* [#2552](https://github.com/rollup/rollup/pull/2552): Properly include ESM browser build in package (@lukastaegert)
2552* [#2560](https://github.com/rollup/rollup/pull/2560): Show proper error when using `inlineDynamicImports` with `experimentalPreserveModules` (@clarkdo)
2553
2554## 0.67.2
2555*2018-11-17*
2556
2557### Bug Fixes
2558* Prevent crash when not returning sourcemaps from `renderChunk` plugin hook (#2558)
2559
2560### Pull Requests
2561* [#2558](https://github.com/rollup/rollup/pull/2558): Prevent crash when not returning sourcemaps from `renderChunk` (@kyle1320)
2562
2563## 0.67.1
2564*2018-11-11*
2565
2566### Bug Fixes
2567* Deconflict CLI entry points with same name but on different paths if no explicit naming is used (#2548)
2568
2569### Pull Requests
2570* [#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)
2571
2572## 0.67.0
2573*2018-11-04*
2574
2575### Breaking Changes
2576none
2577
2578### Features
2579* Do not resolve external dynamic imports via plugins to match the logic for static external imports again (#2505)
2580* Support virtual modules created by plugins when preserving modules (#2511)
2581* Add new `output.sourcemapExcludeSources` option to exclude the actual sources from sourcemaps (#2531)
2582
2583### Bug Fixes
2584* Fix TypeScript type for sourcemaps (#2507)
2585* Fix order of external and inter-chunk imports to match the proper execution order (#2508)
2586* Do not tree-shake children of unknown nodes to e.g. properly handle do-expressions via acorn plugin (#2510)
2587* Prevent memory leak when using the bundle as cache (#2522)
2588* Fix mis-placed semicolons for certain SystemJS exports (#2529)
2589
2590### Pull Requests
2591* [#2505](https://github.com/rollup/rollup/pull/2505): Do not resolve external dynamic imports via plugins (@lukastaegert)
2592* [#2507](https://github.com/rollup/rollup/pull/2507): Fix public sourcemap type (@aMarCruz)
2593* [#2508](https://github.com/rollup/rollup/pull/2508): Improve execution order of chunks and externals (@lukastaegert)
2594* [#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)
2595* [#2511](https://github.com/rollup/rollup/pull/2511): Create chunks for virtual modules when preserving modules (@lukastaegert)
2596* [#2522](https://github.com/rollup/rollup/pull/2522): Prevent memory leak when using the bundle as cache (@kyle1320)
2597* [#2529](https://github.com/rollup/rollup/pull/2529): Fix mis-placed semicolons for certain SystemJS exports (@kyle1320)
2598* [#2531](https://github.com/rollup/rollup/pull/2531): add `sourcemapExcludeSources` option to exclude the source content from sourcemaps (@kitsonk)
2599
2600## 0.66.6
2601*2018-10-10*
2602* Properly deconflict function and class declaration ids of reassigned default exports ([#2502](https://github.com/rollup/rollup/pull/2502))
2603
2604## 0.66.5
2605*2018-10-09*
2606* Remove cache from memory once no longer needed ([#2496](https://github.com/rollup/rollup/pull/2496))
2607* Provide better error message when reexporting external namespace reexports ([#2499](https://github.com/rollup/rollup/pull/2499))
2608
2609## 0.66.4
2610*2018-10-04*
2611* Fix links in warnings and errors ([#2471](https://github.com/rollup/rollup/pull/2471))
2612
2613## 0.66.3
2614*2018-10-03*
2615* Detect side-effects in string.replace function arguments ([#2476](https://github.com/rollup/rollup/pull/2476))
2616* Make sure chunk ids are assigned before creating output bundle ([#2483](https://github.com/rollup/rollup/pull/2483))
2617* Use proper plugin name in error ([#2470](https://github.com/rollup/rollup/pull/2470))
2618* Update TypeScript version and fix type errors ([#2488](https://github.com/rollup/rollup/pull/2488))
2619
2620## 0.66.2
2621*2018-09-21*
2622* Add additional information to parse errors messages in JSON and other non-JS files ([#2466](https://github.com/rollup/rollup/pull/2466))
2623
2624## 0.66.1
2625*2018-09-19*
2626* Ignore falsy plugins ([#2464](https://github.com/rollup/rollup/pull/2464))
2627* Switch back to official TypeScript plugin ([#2465](https://github.com/rollup/rollup/pull/2465))
2628
2629## 0.66.0
2630*2018-09-16*
2631* Support ES2019 optional catch bindings ([#2455](https://github.com/rollup/rollup/pull/2455))
2632* Add option to transform paths within sourcemaps ([#2430](https://github.com/rollup/rollup/pull/2430))
2633* Add renderStart and renderEnd plugin hooks ([#2438](https://github.com/rollup/rollup/pull/2438))
2634* Expose ESM browser build and minify browser builds ([#2437](https://github.com/rollup/rollup/pull/2437)
2635* Associate hoisted variables in function bodys with function parameters ([#2456](https://github.com/rollup/rollup/pull/2456))
2636* Fix issue when deconflicting variables used as pattern defaults ([#2446](https://github.com/rollup/rollup/pull/2446))
2637* Properly deconflict default exported class and function expressions with ids ([#2458](https://github.com/rollup/rollup/pull/2458))
2638* Faster internal test builds ([#2457](https://github.com/rollup/rollup/pull/2457))
2639* Switch to rollup-plugin-typescript2 ([#2460](https://github.com/rollup/rollup/pull/2460))
2640* Fix internal "perf" script ([#2433](https://github.com/rollup/rollup/pull/2433))
2641* Test that errors are passed to the buildEnd hook ([#2450](https://github.com/rollup/rollup/pull/2450))
2642
2643## 0.65.2
2644*2018-09-05*
2645* Prevent watch mode memory leak ([#2441](https://github.com/rollup/rollup/pull/2441))
2646
2647## 0.65.1
2648*2018-09-05*
2649* Prevent globbing when using chokidar ([#2432](https://github.com/rollup/rollup/pull/2432))
2650
2651## 0.65.0
2652*2018-08-25*
2653* Refactor and unify plugin system ([#2382](https://github.com/rollup/rollup/pull/2382))
2654* Implement plugin cache API ([#2389](https://github.com/rollup/rollup/pull/2389))
2655* Add watchChange plugin hook to watch changed files, deprecate asset dependencies ([#2405](https://github.com/rollup/rollup/pull/2405))
2656* Refine asset handling ([#2369](https://github.com/rollup/rollup/pull/2369))
2657* Implement `renderChunk` hook to replace `transformChunk` and `transformBundle` hooks ([#2406](https://github.com/rollup/rollup/pull/2406))
2658* Add rollup version to plugin context ([#2394](https://github.com/rollup/rollup/pull/2394))
2659* Do not resume stdin in watch mode to fix it for Lerna users ([#2410](https://github.com/rollup/rollup/pull/2410))
2660* Allow `[format]` placeholder for id generation ([#2387](https://github.com/rollup/rollup/pull/2387))
2661* Always log error stacks even when a code frame is given ([#2417](https://github.com/rollup/rollup/pull/2417))
2662* Do not test module ids starting with `\0` as external ([#2400](https://github.com/rollup/rollup/pull/2400))
2663* Fix tracing of namespace variables ([#2408](https://github.com/rollup/rollup/pull/2408))
2664* Fix re-tracing of namespace variables ([#2420](https://github.com/rollup/rollup/pull/2420))
2665* Properly wrap comment annotations in SystemJS exports ([#2408](https://github.com/rollup/rollup/pull/2408))
2666* Fix renaming of destructured parameters ([#2419](https://github.com/rollup/rollup/pull/2419))
2667* Do not display version in watch mode when using `--silent` ([#2392](https://github.com/rollup/rollup/pull/2392))
2668* Make `cacheExpiry` an experimental option for now ([#2401](https://github.com/rollup/rollup/pull/2401))
2669* Lint test configs on commit ([#2402](https://github.com/rollup/rollup/pull/2402))
2670* Add code of conduct ([#2388](https://github.com/rollup/rollup/pull/2388))
2671* Move to CircleCI ([#2390](https://github.com/rollup/rollup/pull/2390))
2672* Update pull request template ([#2404](https://github.com/rollup/rollup/pull/2404))
2673
2674## 0.64.1
2675*2018-08-07*
2676* Do not render initializers of hoisted variables in dead branches ([#2384](https://github.com/rollup/rollup/pull/2384))
2677
2678## 0.64.0
2679*2018-08-07*
2680* Print memory consumption together with performance timings ([#2370](https://github.com/rollup/rollup/pull/2370))
2681* Enable plugins to mark imports as external by returning false for resolveId ([#2351](https://github.com/rollup/rollup/pull/2351))
2682* Always retain empty manual chunks ([#2362](https://github.com/rollup/rollup/pull/2362))
2683* Ensure CLI warnings are shown on errors and add error for external id collisions ([#2334](https://github.com/rollup/rollup/pull/2334))
2684* Remove unnecessary dependency, update dependencies, fix linting of test config ([#2376](https://github.com/rollup/rollup/pull/2376))
2685* Add targeted Github issue templates ([#2356](https://github.com/rollup/rollup/pull/2356))
2686
2687## 0.63.5
2688*2018-08-01*
2689* Ensure onwrite plugin hooks execute in sequence ([#2364](https://github.com/rollup/rollup/pull/2364))
2690* Always warn when no name is provided for a global module ([#2359](https://github.com/rollup/rollup/pull/2359))
2691* Add utility type for user created plugins ([#2355](https://github.com/rollup/rollup/pull/2355))
2692* Remove deprecated es6 format from types ([#2349](https://github.com/rollup/rollup/pull/2349))
2693* Mark inlineDynamicImports as optional in types ([#2348](https://github.com/rollup/rollup/pull/2348))
2694
2695## 0.63.4
2696*2018-07-20*
2697* Use turbocolor instead of chalk ([#2339](https://github.com/rollup/rollup/pull/2339))
2698
2699## 0.63.3
2700*2018-07-20*
2701* Handle expressions where "in" and "instanceof" are applied to primitive values ([#2344](https://github.com/rollup/rollup/pull/2344))
2702
2703## 0.63.2
2704*2018-07-18*
2705* Fix bind order in for-of loops ([#2338](https://github.com/rollup/rollup/pull/2338))
2706
2707## 0.63.1
2708*2018-07-18*
2709
2710## 0.63.0
2711*2018-07-17*
2712* Fix many tree-shaking related issues ([#2315](https://github.com/rollup/rollup/pull/2315))
2713* Add experimental support for top-level await ([#2235](https://github.com/rollup/rollup/pull/2235))
2714* Prevent duplicate version printout in watch mode ([#2325](https://github.com/rollup/rollup/pull/2325))
2715* Respect error frames provided by plugins ([#2309](https://github.com/rollup/rollup/pull/2309))
2716* Add `esm` format alias to types ([#2327](https://github.com/rollup/rollup/pull/2327))
2717* Further unify internal test setup ([#2329](https://github.com/rollup/rollup/pull/2329))
2718
2719## 0.62.0
2720*2018-06-27*
2721* Add option to automatically shim missing exports ([#2118](https://github.com/rollup/rollup/pull/2118))
2722* Inline dynamic imports that are also imported statically and only used in a single chunk ([#2295](https://github.com/rollup/rollup/pull/2295))
2723* Handle caching and invalidation of assets ([#2267](https://github.com/rollup/rollup/pull/2267))
2724* Fix plugin related types ([#2299](https://github.com/rollup/rollup/pull/2299))
2725
2726## 0.61.2
2727*2018-06-23*
2728* Improve watcher error handling, only rebuild invalidated outputs ([#2296](https://github.com/rollup/rollup/pull/2296))
2729* Update dependencies, make watcher more stable ([#2297](https://github.com/rollup/rollup/pull/2297))
2730
2731## 0.61.1
2732*2018-06-21*
2733* Do not try to deconflict "undefined" ([#2291](https://github.com/rollup/rollup/pull/2291))
2734* Properly track values for loop interator declarations and reassigned namespaces, add smoke test ([#2292](https://github.com/rollup/rollup/pull/2292))
2735
2736## 0.61.0
2737*2018-06-20*
2738* Declare file dependencies via transform plugin hooks ([#2259](https://github.com/rollup/rollup/pull/2259))
2739* Handle undefined values when evaluating conditionals ([#2264](https://github.com/rollup/rollup/pull/2264))
2740* Handle known undefined properties when evaluating conditionals ([#2265](https://github.com/rollup/rollup/pull/2265))
2741* Access watch events via the plugin context ([#2261](https://github.com/rollup/rollup/pull/2261))
2742* Add option to suppress `__esModule` flag in output ([#2287](https://github.com/rollup/rollup/pull/2287))
2743* Fix issue when re-declaring variables, track reassignments in more cases ([#2279](https://github.com/rollup/rollup/pull/2279))
2744* Add VSCode debug settings ([#2276](https://github.com/rollup/rollup/pull/2276))
2745
2746## 0.60.7
2747*2018-06-14*
2748* Fix typing issue ([#2269](https://github.com/rollup/rollup/pull/2269))
2749
2750## 0.60.6
2751*2018-06-14*
2752* Track mutations of included virtual arrays ([#2263](https://github.com/rollup/rollup/pull/2263))
2753* Update readme ([#2266](https://github.com/rollup/rollup/pull/2266))
2754
2755## 0.60.5
2756*2018-06-14*
2757* Track deep reassignments of global and exported variables and improve performance ([#2254](https://github.com/rollup/rollup/pull/2254))
2758
2759## 0.60.4
2760*2018-06-13*
2761* Properly handle initially uninitialized exports and exports of globals in SystemJS output ([#2258](https://github.com/rollup/rollup/pull/2258))
2762
2763## 0.60.3
2764*2018-06-13*
2765* Fix types to allow watching an array of outputs ([#2262](https://github.com/rollup/rollup/pull/2262))
2766
2767## 0.60.2
2768*2018-06-11*
2769* Permit setting an asset's source in `generateBundle` ([#2256](https://github.com/rollup/rollup/pull/2256))
2770* Add automatic linting ([#2242](https://github.com/rollup/rollup/pull/2242))
2771
2772## 0.60.1
2773*2018-06-07*
2774* Fix plugin regressions ([#2246](https://github.com/rollup/rollup/pull/2246))
2775* Avoid conflicts for large numbers of variables ([#2244](https://github.com/rollup/rollup/pull/2244))
2776
2777## 0.60.0
2778*2018-06-06*
2779* 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))
2780* [BREAKING] Deprecate the `legacy` option and thus IE8 support ([#2141](https://github.com/rollup/rollup/pull/2141))
2781* Detect more known extensions and load .mjs without extension ([#2211](https://github.com/rollup/rollup/pull/2211))
2782* Add compact output mode ([#2151](https://github.com/rollup/rollup/pull/2151))
2783* Significantly improve sourcemap generation performance ([#2228](https://github.com/rollup/rollup/pull/2228))
2784* Enable naming SystemJS modules ([#2028](https://github.com/rollup/rollup/pull/2028))
2785* Do not use alternate screen if clearScreen is set in watch mode ([#2125](https://github.com/rollup/rollup/pull/2125))
2786* Allow object input form for code-splitting in watch mode ([#2217](https://github.com/rollup/rollup/pull/2217))
2787* Track reassignments of methods of exports from outside ([#2240](https://github.com/rollup/rollup/pull/2240))
2788* Preserve id of default exported functions and classes ([#2234](https://github.com/rollup/rollup/pull/2234))
2789* Add semicolons after default exports ([#2209](https://github.com/rollup/rollup/pull/2209))
2790* Fix build problems on Windows ([#2232](https://github.com/rollup/rollup/pull/2232))
2791* Display install size in readme ([#2196](https://github.com/rollup/rollup/pull/2196))
2792* Improve preserve modules test ([#2236](https://github.com/rollup/rollup/pull/2236))
2793
2794## 0.59.4
2795*2018-05-28*
2796* Fix performance regression when many return statements are used ([#2218](https://github.com/rollup/rollup/pull/2218))
2797
2798## 0.59.3
2799*2018-05-24*
2800* Fix reassignment tracking for constructor parameters ([#2214](https://github.com/rollup/rollup/pull/2214))
2801
2802## 0.59.2
2803*2018-05-21*
2804* Fix reassignment tracking in for-in loops ([#2205](https://github.com/rollup/rollup/pull/2205))
2805
2806## 0.59.1
2807*2018-05-16*
2808* Fix infinite recursion when determining literal values of circular structures ([#2193](https://github.com/rollup/rollup/pull/2193))
2809* Fix invalid code when simplifying expressions without spaces ([#2194](https://github.com/rollup/rollup/pull/2194))
2810
2811## 0.59.0
2812*2018-05-15*
2813* Tree-shake statically analysable dynamic conditionals ([#2167](https://github.com/rollup/rollup/pull/2167))
2814* Do not emit empty chunks when code-splitting or empty files when preserving modules ([#2128](https://github.com/rollup/rollup/pull/2128))
2815* Support `import.meta.url` ([#2164](https://github.com/rollup/rollup/pull/2164))
2816* Add `esm` format alias ([#2102](https://github.com/rollup/rollup/pull/2102))
2817* Use alphanumeric base64 characters when deconflicting variables ([#2188](https://github.com/rollup/rollup/pull/2188))
2818* Improve handling of external modules imported as both default and named imports ([#2136](https://github.com/rollup/rollup/pull/2136))
2819* Properly deconflict named imports from other chunks ([#2177](https://github.com/rollup/rollup/pull/2177))
2820* Fix an issue with namespaces containing reexports ([#2157](https://github.com/rollup/rollup/pull/2157))
2821* Fix an issue with with incorrectly mapped default exports when code-splitting CJS or AMD modules ([#2178](https://github.com/rollup/rollup/pull/2178))
2822* Fix an issue with wrong paths of relative external imports ([#2160](https://github.com/rollup/rollup/pull/2160))
2823* Fix an issue when using default exports and `interop: false` ([#2149](https://github.com/rollup/rollup/pull/2149))
2824* Fix in issue with invalid syntax in SystemJS output ([#2187](https://github.com/rollup/rollup/pull/2187))
2825* Fix an issue when tree-shaking call expressions and reassigned variables ([#2186](https://github.com/rollup/rollup/pull/2186))
2826* Fix file paths in source maps ([#2161](https://github.com/rollup/rollup/pull/2161))
2827* Fix wrong file name in error message ([#2137](https://github.com/rollup/rollup/pull/2137))
2828* Always use npm 5 on CI ([#2185](https://github.com/rollup/rollup/pull/2185))
2829
2830## 0.58.2
2831*2018-04-23*
2832* Fix rendering of certain statically resolvable if statements ([#2146](https://github.com/rollup/rollup/pull/2146))
2833
2834## 0.58.1
2835*2018-04-18*
2836* Fix comment detection ([#2129](https://github.com/rollup/rollup/pull/2129))
2837
2838## 0.58.0
2839*2018-04-16*
2840* Support individual chunk names with optional content hashes ([#2068](https://github.com/rollup/rollup/pull/2068))
2841* Support manually created chunks ([#2084](https://github.com/rollup/rollup/pull/2084))
2842* Automatically import deep dependencies when code splitting for better performance ([#2073](https://github.com/rollup/rollup/pull/2073))
2843* Automatically minify internal export/import names for esm and system output ([#2087](https://github.com/rollup/rollup/pull/2087))
2844* Add option to automatically merge small chunks ([#2090](https://github.com/rollup/rollup/pull/2090))
2845* Significantly improve tree-shaking performance ([#2119](https://github.com/rollup/rollup/pull/2119))
2846* Enable tree-shaking for logical expressions ([#2098](https://github.com/rollup/rollup/pull/2098))
2847* Rework external types and reduce type related dependencies ([#2108](https://github.com/rollup/rollup/pull/2108))
2848* Support parallel dependency resolution ([#2116](https://github.com/rollup/rollup/pull/2116))
2849* Improve deprecation handling ([#2076](https://github.com/rollup/rollup/pull/2076))
2850* Enable `--perf` timings in watch mode ([#2065](https://github.com/rollup/rollup/pull/2065))
2851* Improve performance timers ([#2111](https://github.com/rollup/rollup/pull/2111))
2852* Improve error handling for plugins ([#2100](https://github.com/rollup/rollup/pull/2100))
2853* Improve error when using `--dir` in a single file build ([#2123](https://github.com/rollup/rollup/pull/2123))
2854* Do not warn for external imports that are unused due to tree-shaking ([#2124](https://github.com/rollup/rollup/pull/2124))
2855* Update mixed export warning message ([#2107](https://github.com/rollup/rollup/pull/2107))
2856* Remove duplicate badges from readme ([#2083](https://github.com/rollup/rollup/pull/2083))
2857* Update readme examples ([#2086](https://github.com/rollup/rollup/pull/2086))
2858
2859## 0.57.1
2860*2018-03-17*
2861* Improve sourcemap generation performance ([#2062](https://github.com/rollup/rollup/pull/2062))
2862* Add reserved config option namespace and improve CLI interface ([#2063](https://github.com/rollup/rollup/pull/2063))
2863* Fix issue with default exported function and class expressions ([#2059](https://github.com/rollup/rollup/pull/2059))
2864* Replace `forEach` with faster `for` loops in some places ([#2064](https://github.com/rollup/rollup/pull/2064))
2865
2866## 0.57.0
2867*2018-03-15*
2868* Add option to preserve the module structure instead of bundling ([#1922](https://github.com/rollup/rollup/pull/1922))
2869* Enable watch mode when code-splitting ([#2035](https://github.com/rollup/rollup/pull/2035))
2870* Optionally pass CLI commands to config file ([#1926](https://github.com/rollup/rollup/pull/1926))
2871* Option to add correct `.toString` tags to namespaces ([#2041](https://github.com/rollup/rollup/pull/2041))
2872* Option and scripts to display performance timings ([#2045](https://github.com/rollup/rollup/pull/2045))
2873* Fixes for exported or early accessed namespaces + improved namespace indentation ([#2041](https://github.com/rollup/rollup/pull/2041))
2874* Include missing TypeScript dependencies ([#1965](https://github.com/rollup/rollup/pull/1965))
2875* Add #_PURE annotation to frozen namespaces ([#2044](https://github.com/rollup/rollup/pull/2044))
2876* Improve sourcemap and tree-shaking performance ([#2052](https://github.com/rollup/rollup/pull/2052))
2877* Inline sourcemap lookups and make rollup smaller ([#2055](https://github.com/rollup/rollup/pull/2055))
2878* Use updated magic-string types ([#2057](https://github.com/rollup/rollup/pull/2057))
2879* [BREAKING] Revert class id preservation from #2025 ([#2048](https://github.com/rollup/rollup/pull/2048))
2880* [BREAKING] Refactor missing export plugin hook ([#1987](https://github.com/rollup/rollup/pull/1987))
2881
2882## 0.56.5
2883*2018-03-07*
2884* Preserve ids when deconflicting classes ([#2025](https://github.com/rollup/rollup/pull/2025))
2885* Fix an issue with re-exported namespace imports ([#2034](https://github.com/rollup/rollup/pull/2034))
2886* Prevent an infinite loop when binding member expressions ([#1963](https://github.com/rollup/rollup/pull/1963))
2887* Convert code style via prettier ([#2031](https://github.com/rollup/rollup/pull/2031))
2888* Fix links in documentation ([#2026](https://github.com/rollup/rollup/pull/2026))
2889
2890## 0.56.4
2891*2018-03-05*
2892* Make rollup builds reproducible ([#2024](https://github.com/rollup/rollup/pull/2024))
2893* Improve error handling for source maps ([#2012](https://github.com/rollup/rollup/pull/2012))
2894* Properly handle SystemJS default exports without semicolons ([#2019](https://github.com/rollup/rollup/pull/2019))
2895* Properly handle importing the same variable several times when code-splitting ([#2020](https://github.com/rollup/rollup/pull/2020))
2896* Improve re-export tracing ([#2021](https://github.com/rollup/rollup/pull/2021))
2897* Apply "prettier" on commit ([#2017](https://github.com/rollup/rollup/pull/2017))
2898* Automatically clean up outdated tests ([#2009](https://github.com/rollup/rollup/pull/2009))
2899* Add SystemJS output to form tests ([#2022](https://github.com/rollup/rollup/pull/2022))
2900* Improve internal build configuration ([#2016](https://github.com/rollup/rollup/pull/2016))
2901
2902## 0.56.3
2903*2018-02-25*
2904* Fix issues around default exports and module facades ([#2001](https://github.com/rollup/rollup/pull/2001))
2905* Improve and fix internal chunk interface ([#1994](https://github.com/rollup/rollup/pull/1994))
2906* Fix superfluous semicolons added after declarations ([#1999](https://github.com/rollup/rollup/pull/1999))
2907* Improve code-splitting tests ([#1990](https://github.com/rollup/rollup/pull/1990))
2908
2909## 0.56.2
2910*2018-02-19*
2911* Fix handling of reassigned default exports ([#1975](https://github.com/rollup/rollup/pull/1975))
2912* F