UNPKG

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