UNPKG

251 kBMarkdownView Raw
1# rollup changelog
2
3## 2.79.1
4
5_2022-09-22_
6
7### Bug Fixes
8
9- Avoid massive performance degradation when creating thousands of chunks (#4643)
10
11### Pull Requests
12
13- [#4639](https://github.com/rollup/rollup/pull/4639): fix: typo docs and contributors link in CONTRIBUTING.md (@takurinton)
14- [#4641](https://github.com/rollup/rollup/pull/4641): Update type definition of resolveId (@ivanjonas)
15- [#4643](https://github.com/rollup/rollup/pull/4643): Improve performance of chunk naming collision check (@lukastaegert)
16
17## 2.79.0
18
19_2022-08-31_
20
21### Features
22
23- Add `amd.forceJsExtensionForImports` to enforce using `.js` extensions for relative AMD imports (#4607)
24
25### Pull Requests
26
27- [#4607](https://github.com/rollup/rollup/pull/4607): add option to keep extensions for amd (@wh1tevs)
28
29## 2.78.1
30
31_2022-08-19_
32
33### Bug Fixes
34
35- Avoid inferring "arguments" as name for a default export placeholder variable (#4613)
36
37### Pull Requests
38
39- [#4613](https://github.com/rollup/rollup/pull/4613): Prevent using arguments for generated variable names (@lukastaegert)
40
41## 2.78.0
42
43_2022-08-14_
44
45### Features
46
47- Support writing plugin hooks as objects with a "handler" property (#4600)
48- Allow changing execution order per plugin hook (#4600)
49- Add flag to execute plugins in async parallel hooks sequentially (#4600)
50
51### Pull Requests
52
53- [#4600](https://github.com/rollup/rollup/pull/4600): Allow using objects as hooks to change execution order (@lukastaegert)
54
55## 2.77.3
56
57_2022-08-11_
58
59### Bug Fixes
60
61- Correctly resolve preserveModulesRoot in Vite (#4591)
62
63### Pull Requests
64
65- [#4591](https://github.com/rollup/rollup/pull/4591): resolve currentPath (@cleverpp)
66
67## 2.77.2
68
69_2022-07-27_
70
71### Bug Fixes
72
73- Avoid a rendering failure when mixing outputs with inlined and non-inlined dynamic imports (#4589)
74
75### Pull Requests
76
77- [#4589](https://github.com/rollup/rollup/pull/4589): Handle generating non-inlined imports after inlined ones (@lukastaegert)
78
79## 2.77.1
80
81_2022-07-26_
82
83### Bug Fixes
84
85- Ensure IIFE output generates a global variable when generating ES5 (#4588)
86
87### Pull Requests
88
89- [#4577](https://github.com/rollup/rollup/pull/4577): broken link removed (@Jawad-H)
90- [#4580](https://github.com/rollup/rollup/pull/4580): Update dependencies (@lukastaegert)
91- [#4584](https://github.com/rollup/rollup/pull/4584): Documentation clarity and syntax improvements (@berniegp)
92- [#4588](https://github.com/rollup/rollup/pull/4588): Use var for IIFE (@lukastaegert)
93
94## 2.77.0
95
96_2022-07-15_
97
98### Features
99
100- Introduce `maxParallelFileOps` to limit both read and write operations, default to 20 and replaces `maxParallelFileRead` (#4570)
101
102### Bug Fixes
103
104- Avoid including variables referenced from return statements that are never reached (#4573)
105
106### Pull Requests
107
108- [#4570](https://github.com/rollup/rollup/pull/4570): Introduce maxParallelFileOps to limit parallel writes (@lukastaegert)
109- [#4572](https://github.com/rollup/rollup/pull/4572): Document more ways to read package.json in ESM (@berniegp)
110- [#4573](https://github.com/rollup/rollup/pull/4573): Do not include unused return expressions (@lukastaegert)
111
112## 2.76.0
113
114_2022-07-08_
115
116### Features
117
118- Allow setting a `sourcmapBaseUrl` for absolute paths in sourcemaps (#4527)
119
120### Bug Fixes
121
122- Support absolute CLI plugin paths on Windows (#4533)
123
124### Pull Requests
125
126- [#4527](https://github.com/rollup/rollup/pull/4527): Add sourcemapBaseUrl option (@nickgarlis)
127- [#4533](https://github.com/rollup/rollup/pull/4533): Add support for absolute plugin paths (@ygoe)
128- [#4538](https://github.com/rollup/rollup/pull/4538): chore: Included githubactions in the dependabot config (@naveensrinivasan)
129- [#4546](https://github.com/rollup/rollup/pull/4546): Adapt Node versions on CI to prepare for v3 (@lukastaegert)
130- [#4556](https://github.com/rollup/rollup/pull/4556): Improve error message for invalid patterns (@DysphoricUnicorn)
131- [#4559](https://github.com/rollup/rollup/pull/4559): Update dependencies (@lukastaegert)
132- [#4560](https://github.com/rollup/rollup/pull/4560): Bump peter-evans/create-or-update-comment from 1 to 2 (@dependabot)
133- [#4561](https://github.com/rollup/rollup/pull/4561): Bump peter-evans/find-comment from 1 to 2 (@dependabot)
134- [#4562](https://github.com/rollup/rollup/pull/4562): Bump codecov/codecov-action from 1 to 3 (@dependabot)
135
136## 2.75.7
137
138_2022-06-20_
139
140### Bug Fixes
141
142- Mark Array.prototype.group/groupToMap as side effect free. (#4531)
143
144### Pull Requests
145
146- [#4523](https://github.com/rollup/rollup/pull/4523): chore: remove source map workaround, bump deps (@dnalborczyk)
147- [#4525](https://github.com/rollup/rollup/pull/4525): Add regression tests for instanceof (@lukastaegert)
148- [#4528](https://github.com/rollup/rollup/pull/4528): chore: Set permissions for GitHub actions (@naveensrinivasan)
149- [#4531](https://github.com/rollup/rollup/pull/4531): fix: rename Array.prototype.group/groupToMap (@dnalborczyk)
150- [#4535](https://github.com/rollup/rollup/pull/4535): chore: bump resolve from 1.22.0 to 1.22.1 (@pos777)
151
152## 2.75.6
153
154_2022-06-07_
155
156### Bug Fixes
157
158- Properly deoptimize "this" when using member expressions with getters/setters in for loops and update expressions (#4522)
159
160### Pull Requests
161
162- [#4522](https://github.com/rollup/rollup/pull/4522): Refactor side effect handling for property interactions (@lukastaegert)
163
164## 2.75.5
165
166_2022-06-01_
167
168### Bug Fixes
169
170- Avoid crashes when using logical expressions for unused constructor arguments (#4519)
171- Fix missing parameter defaults for calls from try statements and functions returned by functions (#4520)
172
173### Pull Requests
174
175- [#4519](https://github.com/rollup/rollup/pull/4519): Try to make logical expression deoptimization more robust (@lukastaegert)
176- [#4520](https://github.com/rollup/rollup/pull/4520): Roll back parameter default tree shaking (@lukastaegert)
177
178## 2.75.4
179
180_2022-05-31_
181
182### Bug Fixes
183
184- Ensure parameter defaults are retained when a function is used as an object property (#4516)
185
186### Pull Requests
187
188- [#4516](https://github.com/rollup/rollup/pull/4516): Deoptimize parameter defaults when referenced from object/array/class literals (@lukastaegert)
189
190## 2.75.3
191
192_2022-05-29_
193
194### Bug Fixes
195
196- Retain parameter defaults for functions that are defaults themselves (#4515)
197- Track mutations for objects as default values (#4515)
198
199### Pull Requests
200
201- [#4515](https://github.com/rollup/rollup/pull/4515): Ensure parameter defaults are deoptimized (@lukastaegert)
202
203## 2.75.1
204
205_2022-05-28_
206
207### Pull Requests
208
209- [#4513](https://github.com/rollup/rollup/pull/4513): Update link to node polyfill repo (@lukastaegert)
210
211## 2.75.0
212
213_2022-05-27_
214
215### Features
216
217- Re-implement default parameter tree-shaking for top-level functions (#4510)
218- Do not consider calling string methods like `.trim()` on template literals a side effect (#4511)
219
220### Pull Requests
221
222- [#4510](https://github.com/rollup/rollup/pull/4510): Tree-shake parameter defaults (replaces #4498) (@lukastaegert)
223- [#4511](https://github.com/rollup/rollup/pull/4511): Tree-shake side-effect-free string methods on template literals (@lukastaegert)
224
225## 2.74.1
226
227_2022-05-19_
228
229### Bug Fixes
230
231- Revert #4498 until some issues are understood and resolved
232
233## 2.74.0
234
235_2022-05-19_
236
237### Features
238
239- Remove unneeded default values for function parameters (#4498)
240
241### Bug Fixes
242
243- Use a consistent mechanism to resolve the config file to avoid issues on Windows (#4501)
244- Avoid an inaccurate warning about an event emitter leak for complicated builds (#4502)
245- Ensure that reexporting values from other chunks via dynamic imports does not reference non-imported variables (#4499)
246
247### Pull Requests
248
249- [#4498](https://github.com/rollup/rollup/pull/4498): Tree shake parameter defaults (@lukastaegert)
250- [#4499](https://github.com/rollup/rollup/pull/4499): Ensure reexports are available for namespaces (@lukastaegert)
251- [#4501](https://github.com/rollup/rollup/pull/4501): fix: config path problem on windows (@pos777)
252- [#4502](https://github.com/rollup/rollup/pull/4502): Avoid maximum listeners exceeded warning (@lukastaegert)
253
254## 2.73.0
255
256_2022-05-13_
257
258### Features
259
260- Do not treat Object.defineProperty/ies as side effect when called on an unused object (#4493)
261- Do not assume that assigning a property can create a getter with side effects (#4493)
262- Do not treat string.prototype.replace(All) as side effect when used with two literals (#4493)
263
264### Bug Fixes
265
266- Detect side effects when manually declaring getters on functions (#4493)
267
268### Pull Requests
269
270- [#4493](https://github.com/rollup/rollup/pull/4493): Handle getters on functions and improve property deoptimization (@lukastaegert)
271- [#4494](https://github.com/rollup/rollup/pull/4494): Do not treat string.replace as side effect when used with a literal (@lukastaegert)
272- [#4495](https://github.com/rollup/rollup/pull/4495): Update docs for --configPlugin using typescript (@Jimmydalecleveland)
273
274## 2.72.1
275
276_2022-05-07_
277
278### Bug Fixes
279
280- Improve tree-shaking of classes with super classes in certain scenarios (#4489)
281
282### Pull Requests
283
284- [#4489](https://github.com/rollup/rollup/pull/4489): Do not deoptimize entire super class when adding a property (@lukastaegert)
285
286## 2.72.0
287
288_2022-05-05_
289
290### Features
291
292- Add CLI hooks to run external commands at certain points in watch mode (#4457)
293
294### Bug Fixes
295
296- Fix an issue that could accidentally treat relevant assignments as side effect free (#4486)
297
298### Pull Requests
299
300- [#4457](https://github.com/rollup/rollup/pull/4457): feat: CLI event hook flags (@Harris-Miller)
301- [#4486](https://github.com/rollup/rollup/pull/4486): Fix reassignment tracking (@lukastaegert)
302
303## 2.71.1
304
305_2022-04-30_
306
307### Bug Fixes
308
309- Allow importing loadConfigFile without extension (#4483)
310
311### Pull Requests
312
313- [#4483](https://github.com/rollup/rollup/pull/4483): Add exports exception for loadConfigFile (@lukastaegert)
314
315## 2.71.0
316
317_2022-04-30_
318
319## Features
320
321- Mark `Object.hasOwn` as pure (#4482)
322
323### Bug Fixes
324
325- Prevent infinite recursion and display proper warning for recursive reexports (#4472)
326- Fix type issue in TypeScript nightly (#4471)
327
328### Pull Requests
329
330- [#4467](https://github.com/rollup/rollup/pull/4467): docs: update deprecated option in tools.md (@kimjh96)
331- [#4471](https://github.com/rollup/rollup/pull/4471): Fix: tsc did not build (@frank-dspeed)
332- [#4472](https://github.com/rollup/rollup/pull/4472): Throw proper error when indirectly reexporting a recursive binding (@lukastaegert)
333- [#4475](https://github.com/rollup/rollup/pull/4475): chore: bump deps (#4475) (@dnalborczyk)
334- [#4477](https://github.com/rollup/rollup/pull/4477): chore: bump github actions (@dnalborczyk)
335- [#4478](https://github.com/rollup/rollup/pull/4478): ci: test with node.js v18, remove v17 (@dnalborczyk)
336- [#4479](https://github.com/rollup/rollup/pull/4479): chore(repo): replace `git.io` in the issue template (@SukkaW)
337- [#4482](https://github.com/rollup/rollup/pull/4482): feat: add Object.hasOwn as pure function (@dnalborczyk)
338
339## 2.70.2
340
341_2022-04-15_
342
343### Bug Fixes
344
345- Do not enforce undefined return values in TypeScript types (#4463)
346
347### Pull Requests
348
349- [#4463](https://github.com/rollup/rollup/pull/4463): use void for options hook instead of undefined (@ycmjason)
350
351## 2.70.1
352
353_2022-03-14_
354
355### Bug Fixes
356
357- Handle unfinished hook action errors as regular errors and avoid console logging (#4434)
358- Allow access to "dist" folder in a Node 17 compatible way (#4436)
359
360### Pull Requests
361
362- [#4434](https://github.com/rollup/rollup/pull/4434): Track unfinished hook actions as regular errors (@lukastaegert)
363- [#4436](https://github.com/rollup/rollup/pull/4436): Update package.json (@frank-dspeed)
364
365## 2.70.0
366
367_2022-03-07_
368
369### Features
370
371- Make the `watchChange` and `closeWatcher` hooks asynchronous and make Rollup wait for these hooks before continuing (#4427)
372
373### Bug Fixes
374
375- Do not abort watch mode for errors in `watchChange` but display them properly (#4427)
376
377### Pull Requests
378
379- [#4427](https://github.com/rollup/rollup/pull/4427): Do not abort watch mode on errors in watchChange (@lukastaegert)
380
381## 2.69.2
382
383_2022-03-06_
384
385### Bug Fixes
386
387- Mark `Object.entries` and `Object.fromEntries` as pure (#4429)
388- Make sure new properties on Array.prototype and Object.prototype are not evaluated as "undefined" (#4428)
389
390### Pull Requests
391
392- [#4428](https://github.com/rollup/rollup/pull/4428): Treat unknown prototype props as unknown (@lukastaegert)
393- [#4429](https://github.com/rollup/rollup/pull/4429): Treat unknown prototype props as unknown (@869288142)
394
395## 2.69.1
396
397_2022-03-04_
398
399### Bug Fixes
400
401- Approximate source position instead of ignoring it when using a low-resolution source map in a transform hook (#4334)
402
403### Pull Requests
404
405- [#4334](https://github.com/rollup/rollup/pull/4334): fix(sourcemap): fall back to low-resolution line mapping (@aleclarson and @lukastaegert)
406
407## 2.69.0
408
409_2022-03-02_
410
411### Features
412
413- Introduce new `output.generatedCode.symbols` to control the usage of Symbols in Rollup-generated code (#4378)
414- soft-deprecate `output.namespaceToStringTag` in favor of `output.generatedCode.symbols` (#4378)
415
416### Bug Fixes
417
418- Properly handle `./` and `../` as external dependencies (#4419)
419- Make generated "Module" namespace toStringTag non-enumerable for correct Object.assign/spread behaviour (#4378)
420- Add file name to error when top-level-await is used in disallowed formats (#4421)
421
422### Pull Requests
423
424- [#4378](https://github.com/rollup/rollup/pull/4378): Make namespace @@toStringTag "Module" non-enumerable (@dnalborczyk and @lukastaegert)
425- [#4413](https://github.com/rollup/rollup/pull/4413): refactor: some code and type fixes (@dnalborczyk)
426- [#4418](https://github.com/rollup/rollup/pull/4418): chore: bump deps (@dnalborczyk)
427- [#4419](https://github.com/rollup/rollup/pull/4419): Properly handle upper directories as external dependencies (@lukastaegert)
428- [#4421](https://github.com/rollup/rollup/pull/4421): Improve the error prompt and output the error file name (@caoxiemeihao)
429- [#4423](https://github.com/rollup/rollup/pull/4423): Update 999-big-list-of-options.md (@leoj3n)
430
431## 2.68.0
432
433_2022-02-22_
434
435### Features
436
437- provide information about cached import resolutions in `shouldTransformCachedModule` (#4414)
438- Add "types" field to Rollup's package exports (#4416)
439
440### Pull Requests
441
442- [#4410](https://github.com/rollup/rollup/pull/4410): refactor: use map for declarations and name suggestions (@dnalborczyk)
443- [#4411](https://github.com/rollup/rollup/pull/4411): refactor: use map for namespace reexports by name (@dnalborczyk)
444- [#4412](https://github.com/rollup/rollup/pull/4412): refactor: use includes where appropriate (@dnalborczyk)
445- [#4414](https://github.com/rollup/rollup/pull/4414): Add resolved sources to shouldTransformCachedModule (@lukastaegert)
446- [#4416](https://github.com/rollup/rollup/pull/4416): Add Typescript 4.5 nodenext node12 module resolution support (@frank-dspeed)
447
448## 2.67.3
449
450_2022-02-18_
451
452### Bug Fixes
453
454- Do not swallow other errors when unfinished hook actions are detected (#4409)
455- Add additional information to output when there are unfinished hook actions (#4409)
456
457### Pull Requests
458
459- [#4399](https://github.com/rollup/rollup/pull/4399): docs: remove const (@TrickyPi)
460- [#4401](https://github.com/rollup/rollup/pull/4401): Improve test stability by getting independent of module id ordering in more places (@lukastaegert)
461- [#4403](https://github.com/rollup/rollup/pull/4403): fix: remove unnecessary property descriptor spread (@dnalborczyk)
462- [#4404](https://github.com/rollup/rollup/pull/4404): refactor: use map for import descriptions + re-export descriptions (@dnalborczyk)
463- [#4405](https://github.com/rollup/rollup/pull/4405): refactor: module exports to map (@dnalborczyk)
464- [#4406](https://github.com/rollup/rollup/pull/4406): Fix a typo in 'Direct plugin communication' code example (@younesmln)
465- [#4407](https://github.com/rollup/rollup/pull/4407): Document how resolveId is cached (@lukastaegert)
466- [#4409](https://github.com/rollup/rollup/pull/4409): Print ids for unfinished moduleParsed and shouldTransformCachedModule hooks (@lukastaegert)
467
468## 2.67.2
469
470_2022-02-10_
471
472### Bug Fixes
473
474- Ensure consistent order between manual chunks to fix hashing issues (#4397)
475
476### Pull Requests
477
478- [#4390](https://github.com/rollup/rollup/pull/4390): refactor: add @types/estree explicitly, fix dynamic type imports (@dnalborczyk)
479- [#4391](https://github.com/rollup/rollup/pull/4391): chore: remove acorn-walk ambient type definitions (@dnalborczyk)
480- [#4397](https://github.com/rollup/rollup/pull/4397): Sort manual chunks generated via a function by name (@lukastaegert)
481
482## 2.67.1
483
484_2022-02-07_
485
486### Bug Fixes
487
488- Make chunk file and variable names more deterministic when emitting chunks (#4386)
489- Improve default module resolver performance by using non-blocking IO (#4386)
490
491### Pull Requests
492
493- [#4373](https://github.com/rollup/rollup/pull/4373): fix: even more types (@dnalborczyk)
494- [#4382](https://github.com/rollup/rollup/pull/4382): Update contribution tut link desc (@lemredd)
495- [#4383](https://github.com/rollup/rollup/pull/4383): chore: bump deps (@dnalborczyk)
496- [#4384](https://github.com/rollup/rollup/pull/4384): chore: move "wait" to utils + re-use (@dnalborczyk)
497- [#4385](https://github.com/rollup/rollup/pull/4385): refactor: convert watch tests to async functions (@dnalborczyk)
498- [#4386](https://github.com/rollup/rollup/pull/4386): refactor: use fs.promises in resolve id, Part 4 (@dnalborczyk and @lukastaegert)
499- [#4389](https://github.com/rollup/rollup/pull/4389): refactor: use fs.promises in generate license file, rollup config, Part 5 (@dnalborczyk)
500
501## 2.67.0
502
503_2022-02-02_
504
505### Features
506
507- Improve side effect detection when using Array.prototype.groupBy/groupByToMap (#4360)
508- Allow changing `moduleSideEffects` at any time during the build (#4379)
509- Soft-deprecate `ModuleInfo.hasModuleSideEffects` in favour of `ModuleInfo.moduleSideEffects` (#4379)
510
511### Bug Fixes
512
513- Do not include queries and hashes in generated file names when preserving modules (#4374)
514
515### Pull Requests
516
517- [#4319](https://github.com/rollup/rollup/pull/4319): refactor: use fs, fs-extra, remove sander (@dnalborczyk)
518- [#4360](https://github.com/rollup/rollup/pull/4360): feat: add Array.prototype.groupBy/groupByToMap (@dnalborczyk)
519- [#4361](https://github.com/rollup/rollup/pull/4361): fix: more types (@dnalborczyk)
520- [#4369](https://github.com/rollup/rollup/pull/4369): fix: remove acorn-walk patch (@dnalborczyk)
521- [#4371](https://github.com/rollup/rollup/pull/4371): refactor: use fs.promises in cli/run (@dnalborczyk)
522- [#4372](https://github.com/rollup/rollup/pull/4372): refactor: use fs.promises in module loader (@dnalborczyk)
523- [#4374](https://github.com/rollup/rollup/pull/4374): Ignore queries and hashes in file names when preserving modules (@lukastaegert)
524- [#4375](https://github.com/rollup/rollup/pull/4375): Fix typo in \_config.js (@eltociear)
525- [#4376](https://github.com/rollup/rollup/pull/4376): refactor: fs.promises, move mkdir to writeoutputfile, Part 3 (@dnalborczyk)
526- [#4379](https://github.com/rollup/rollup/pull/4379): Deprecate hasModuleSideEffects in favor of moduleSideEffects and ensure it is mutable on ModuleInfo (@lukastaegert)
527
528## 2.66.1
529
530_2022-01-25_
531
532### Bug Fixes
533
534- Only warn for conflicting names in namespace reexports if it actually causes problems (#4363)
535- Only allow explicit exports or reexports as synthetic namespaces and hide them from namespace reexports (#4364)
536
537### Pull Requests
538
539- [#4362](https://github.com/rollup/rollup/pull/4362): refactor: convert exportsByName object to map (@dnalborczyk)
540- [#4363](https://github.com/rollup/rollup/pull/4363): Do not warn unnecessarily for namespace conflicts (@lukastaegert)
541- [#4364](https://github.com/rollup/rollup/pull/4364): Do not expose synthetic namespace export in entries and namespaces (@lukastaegert)
542
543## 2.66.0
544
545_2022-01-22_
546
547### Features
548
549- Note if a module has a default export in ModuleInfo to allow writing better proxy modules (#4356)
550- Add option to wait until all imported ids have been resolved when awaiting `this.load` (#4358)
551
552### Pull Requests
553
554- [#4356](https://github.com/rollup/rollup/pull/4356): Add hasDefaultExport to ModuleInfo (@lukastaegert)
555- [#4358](https://github.com/rollup/rollup/pull/4358): Add "resolveDependencies" option to "this.load" (@lukastaegert)
556
557## 2.65.0
558
559_2022-01-21_
560
561### Features
562
563- Add complete import resolution objects to ModuleInfo for use in `this.load` (#4354)
564
565### Bug Fixes
566
567- Use correct context in plugin hooks with `perf: true` (#4357)
568
569### Pull Requests
570
571- [#4351](https://github.com/rollup/rollup/pull/4351): refactor: re-use source mapping url (@dnalborczyk)
572- [#4352](https://github.com/rollup/rollup/pull/4352): refactor: replace require-relative with built-in require.resolve (@dnalborczyk)
573- [#4353](https://github.com/rollup/rollup/pull/4353): chore: bump deps (@dnalborczyk)
574- [#4354](https://github.com/rollup/rollup/pull/4354): Add importedIdResolutions to moduleInfo (@lukastaegert)
575- [#4355](https://github.com/rollup/rollup/pull/4355): chore: remove external from config (@dnalborczyk)
576- [#4357](https://github.com/rollup/rollup/pull/4357): fix: timed plugin context (@dnalborczyk)
577
578## 2.64.0
579
580_2022-01-14_
581
582### Features
583
584- Allow inspecting cached modules and forcing them to be transformed again via shouldTransformCachedModule (#4320)
585- Do not wait for the config file to be parsed in watch mode if it is updated before that (#4344)
586
587### Bug Fixes
588
589- Do not mutate objects returned as `meta` from the resolveId hook (#4347)
590
591### Pull Requests
592
593- [#4326](https://github.com/rollup/rollup/pull/4326): refactor: type fixes (@dnalborczyk)
594- [#4339](https://github.com/rollup/rollup/pull/4339): More watch test stabilization (@lukastaegert)
595- [#4340](https://github.com/rollup/rollup/pull/4340): refactor: performance timers for node.js and browser (@dnalborczyk)
596- [#4341](https://github.com/rollup/rollup/pull/4341): Implement shouldTransformCachedModule hook (@lukastaegert)
597- [#4344](https://github.com/rollup/rollup/pull/4344): Directly restart Rollup when config file change is detected in watch mode (@lukastaegert)
598- [#4347](https://github.com/rollup/rollup/pull/4347): Create a shallow copy when returning meta from resolveId (@lukastaegert)
599
600## 2.63.0
601
602_2022-01-04_
603
604### Features
605
606- Report a helpful error if rollup exits due to an empty event loop when using `this.load` (#4320)
607- Allow directly mutating ModuleInfo.meta for modules and never replace this object (#4328)
608- Detect additional side effect free array prototype methods (#4332)
609
610### Bug Fixes
611
612- Do not watch if CLI watch options are specified but `--watch` is missing (#4335)
613
614### Pull Requests
615
616- [#4320](https://github.com/rollup/rollup/pull/4320): Detect unfulfilled async hook actions and report error on exit (@kzc)
617- [#4328](https://github.com/rollup/rollup/pull/4328): Make initial ModuleInfo.meta mutable and maintain object identity (@lukastaegert)
618- [#4318](https://github.com/rollup/rollup/pull/4318): Stabilize watch tests (@lukastaegert)
619- [#4331](https://github.com/rollup/rollup/pull/4331): Improve JS docs example (@lukastaegert)
620- [#4332](https://github.com/rollup/rollup/pull/4332): add support for Array.prototype.findLast,findLastIndex (@dnalborczyk)
621- [#4333](https://github.com/rollup/rollup/pull/4333): convert utils.transform to async function (@dnalborczyk)
622- [#4335](https://github.com/rollup/rollup/pull/4335): Do not watch unless --watch is specified explicitly (@lukastaegert)
623- [#4338](https://github.com/rollup/rollup/pull/4338): Add build delay for plugin event test (@lukastaegert)
624
625## 2.62.0
626
627_2021-12-24_
628
629### Features
630
631- Mark additional string prototype methods as side-effect-free and correct typings of existing ones (#4299)
632- Mark additional array prototype methods as side-effect-free and correct typings of existing ones (#4309)
633- Expose if a module is included after tree-shaking in its ModuleInfo (#4305)
634
635### Bug Fixes
636
637- Fix how fsevents is included to improve watch mode on MacOS (#4312)
638
639### Pull Requests
640
641- [#4299](https://github.com/rollup/rollup/pull/4299): Add additional string prototype methods (@dnalborczyk)
642- [#4300](https://github.com/rollup/rollup/pull/4300): Bump deps, fix expected test result for core-js (@dnalborczyk)
643- [#4302](https://github.com/rollup/rollup/pull/4302): Replace type assertion with type guard (@dnalborczyk)
644- [#4304](https://github.com/rollup/rollup/pull/4304): Re-use reserved names set (@dnalborczyk)
645- [#4305](https://github.com/rollup/rollup/pull/4305): Expose isIncluded in module info (@william57m)
646- [#4306](https://github.com/rollup/rollup/pull/4306): Fix git line breaks on windows (@dnalborczyk)
647- [#4307](https://github.com/rollup/rollup/pull/4307): Add macos to pipeline (@dnalborczyk)
648- [#4309](https://github.com/rollup/rollup/pull/4309): Add additional array prototype methods (@dnalborczyk)
649- [#4311](https://github.com/rollup/rollup/pull/4311): Add Deno instructions to docs (@jespertheend)
650- [#4312](https://github.com/rollup/rollup/pull/4312): fsevents integration (@dnalborczyk)
651- [#4313](https://github.com/rollup/rollup/pull/4313): Remove non-existing static functions from known globals (@dnalborczyk)
652
653## 2.61.1
654
655_2021-12-11_
656
657### Bug Fixes
658
659- Only resolve this.load once the code of the module is available (#4296)
660
661### Pull Requests
662
663- [#4296](https://github.com/rollup/rollup/pull/4296): Make sure this.load waits for modules that are already loading (@lukastaegert)
664- [#4298](https://github.com/rollup/rollup/pull/4298): use set for reserved words (@dnalborczyk)
665
666## 2.61.0
667
668_2021-12-09_
669
670### Features
671
672- Support ergonomic brand checks for private fields (#4293)
673
674### Bug Fixes
675
676- Improve handling of directory creation on systems with restrictive open files limit (#4288)
677
678### Pull Requests
679
680- [#4288](https://github.com/rollup/rollup/pull/4288): modifymkdirpath (@mgrabowski84)
681- [#4293](https://github.com/rollup/rollup/pull/4293): bump deps (@dnalborczyk)
682
683## 2.60.2
684
685_2021-11-30_
686
687### Bug Fixes
688
689- Produce correct output when dynamic import paths contain quotes (#4286)
690
691### Pull Requests
692
693- [#4286](https://github.com/rollup/rollup/pull/4286): Escape dynamic import paths (@danielroe)
694
695## 2.60.1
696
697_2021-11-22_
698
699### Bug Fixes
700
701- Make sure virtual files have proper file extensions when preserving modules (#4270)
702
703### Pull Requests
704
705- [#4270](https://github.com/rollup/rollup/pull/4270): Use entryFileNames when generating filenames for virtual modules (@BPScott)
706
707## 2.60.0
708
709_2021-11-11_
710
711### Features
712
713- Add `this.load` context function to load, transform and parse modules without adding them to the graph (#4234)
714- Sanitize non-url-safe characters in generated chunk names by default (#4262)
715- Support ESM plugins via command line (#4265)
716
717### Pull Requests
718
719- [#4234](https://github.com/rollup/rollup/pull/4234): Plugin context function for pre-loading modules (@lukastaegert)
720- [#4262](https://github.com/rollup/rollup/pull/4262): exclude invalid URL chars (@danielroe)
721- [#4265](https://github.com/rollup/rollup/pull/4265): support loading ESM plugins from the CLI via --plugin (@kzc)
722
723## 2.59.0
724
725_2021-11-01_
726
727### Features
728
729- Support static class initialization blocks (#4249)
730
731### Bug Fixes
732
733- Fix an issue with the CommonJS plugin when module.exports has inherited properties (#4256)
734
735### Pull Requests
736
737- [#4236](https://github.com/rollup/rollup/pull/4236): typescript bug class field initialization order (@dnalborczyk)
738- [#4249](https://github.com/rollup/rollup/pull/4249): Support for class static initialization block (@dnalborczyk and @lukastaegert)
739- [#4256](https://github.com/rollup/rollup/pull/4256): Skip inherited properties in synthetic namespaces (@lukastaegert)
740
741## 2.58.3
742
743_2021-10-25_
744
745### Bug Fixes
746
747- Republish 2.58.1 with npm 6 as files were missing
748
749## 2.58.2
750
751_2021-10-25_
752
753### Bug Fixes
754
755- Republish 2.58.1 as files were missing
756
757## 2.58.1
758
759_2021-10-25_
760
761### Bug Fixes
762
763- Fix an issue with the CommonJS plugin when module.exports is falsy (#4247)
764
765### Pull Requests
766
767- [#4247](https://github.com/rollup/rollup/pull/4247): Handle falsy synthetic namespaces (@lukastaegert)
768
769## 2.58.0
770
771_2021-10-01_
772
773### Features
774
775- Add a flag to more reliably identify entry points in the `resolveId` hook (#4230)
776
777### Pull Requests
778
779- [#4230](https://github.com/rollup/rollup/pull/4230): Add isEntry flag to resolveId and this.resolve (@lukastaegert)
780- [#4233](https://github.com/rollup/rollup/pull/4233): Remove unused rollup-plugin-typescript ambient module types (@dnalborczyk)
781- [#4235](https://github.com/rollup/rollup/pull/4235): Update dependencies (@lukastaegert)
782
783## 2.57.0
784
785_2021-09-22_
786
787### Features
788
789- Add `generatedCode` option to allow Rollup to use es2015 features for smaller output and more efficient helpers (#4215)
790- Improve AMD and SystemJS parsing performance by wrapping relevant functions in parentheses (#4215)
791- Using `preferConst` will now show a warning with `strictDeprecations: true` (#4215)
792
793### Bug Fixes
794
795- Improve ES3 syntax compatibility by more consequently quoting reserved words as props in generated code (#4215)
796- Do not use `Object.assign` in generated code to ensure ES5 compatibility without the need for polyfills (#4215)
797- Support live-bindings in dynamic namespace objects that contain reexported external or synthetic namespaces (#4215)
798- Use correct "this" binding in dynamic import expressions for CommonJS and AMD (#4215)
799- Properly handle `shimMissingExports` for exports that are only used internally (#4215)
800- Prevent unhandled rejection for failed module parsing (#4228)
801
802### Pull Requests
803
804- [#4212](https://github.com/rollup/rollup/pull/4212): chore: remove unused ambient types (@dnalborczyk)
805- [#4215](https://github.com/rollup/rollup/pull/4215): Use ES2015 features in generated code snippets (@lukastaegert)
806- [#4219](https://github.com/rollup/rollup/pull/4219): chore: bump rollup typescript, remove unused micromatch (@dnalborczyk)
807- [#4220](https://github.com/rollup/rollup/pull/4220): chore: use forceConsistentCasingInFileNames in ts-config (@dnalborczyk)
808- [#4224](https://github.com/rollup/rollup/pull/4224): prepare for useDefineForClassFields (@dnalborczyk)
809- [#4228](https://github.com/rollup/rollup/pull/4228): fix: prevent UnhandledPromiseRejectionWarning when module resolution/parsing fails (@kherock)
810
811## 2.56.3
812
813_2021-08-23_
814
815### Bug Fixes
816
817- Make sure moduleInfo contains complete information about imported ids in the moduleParsed hook (#4208)
818
819### Pull Requests
820
821- [#4208](https://github.com/rollup/rollup/pull/4208): `ModuleInfo.importedIds` will return null if `resolvedIds[source]` is undefined (@FoxDaxian and @lukastaegert)
822
823## 2.56.2
824
825_2021-08-10_
826
827### Bug Fixes
828
829- Check if after simplification, an object pattern would become an expression statement or arrow function return value (#4204)
830
831### Pull Requests
832
833- [#4204](https://github.com/rollup/rollup/pull/4204): Do not create invalid code when simplifying object pattern assignments (@lukastaegert)
834
835## 2.56.1
836
837_2021-08-08_
838
839### Bug Fixes
840
841- Fix rendering of SystemJS export declarations initialized with a simplifiable expression (#4202)
842
843### Pull Requests
844
845- [#4202](https://github.com/rollup/rollup/pull/4202): Fix incorrect rendering of export declarations in SystemJS (@lukastaegert)
846
847## 2.56.0
848
849_2021-08-05_
850
851### Features
852
853- Create more efficient code for SystemJS exports (#4199)
854- Extend `maxParallelFileReads` option to also throttle plugin load hooks (#4200)
855
856### Bug Fixes
857
858- Return correct value for postfix update expressions of exported variables (#4194)
859
860### Pull Requests
861
862- [#4199](https://github.com/rollup/rollup/pull/4199): Refine SystemJS export rendering (@lukastaegert)
863- [#4200](https://github.com/rollup/rollup/pull/4200): Restrict parallel execution of load hook (@schummar)
864
865## 2.55.1
866
867_2021-07-29_
868
869### Bug Fixes
870
871- Improve CLI warning message for unused external imports (#4194)
872
873### Pull Requests
874
875- [#4194](https://github.com/rollup/rollup/pull/4194): Align batch warning for UNUSED_EXTERNAL_IMPORT to individual warning (@benmccann)
876
877## 2.55.0
878
879_2021-07-28_
880
881### Features
882
883- Support default export live-bindings when generating ESM output (#4182)
884
885### Bug Fixes
886
887- Always write `["default"]` as computed property when used as named export (#4182)
888- Do not mask default export TDZ errors (#4182)
889
890### Pull Requests
891
892- [#4182](https://github.com/rollup/rollup/pull/4182): Use mutable bindings for default exports (@lukastaegert)
893
894## 2.54.0
895
896_2021-07-25_
897
898### Features
899
900- Extend UMD import.meta.url polyfill to support web workers (#4186)
901
902### Bug Fixes
903
904- Resolve an issue where certain uses of classes could lead to an infinite recursion (#4189)
905
906### Pull Requests
907
908- [#4186](https://github.com/rollup/rollup/pull/4186): Fix UMD import.meta.url inside web workers (@ceifa)
909- [#4188](https://github.com/rollup/rollup/pull/4188): Fix typo in renderHelpers.ts (@eltociear)
910- [#4189](https://github.com/rollup/rollup/pull/4189): Move long path recursion prevention to MemberExpression (@lukastaegert)
911- [#4190](https://github.com/rollup/rollup/pull/4190): Stop recommending node-builtins (@curran)
912
913## 2.53.3
914
915_2021-07-21_
916
917### Bug Fixes
918
919- Solve an issue that could lead to severe memory issues and crashes when there are a lot of hoisted variables (#4183)
920
921### Pull Requests
922
923- [#4183](https://github.com/rollup/rollup/pull/4183): Avoid memory issues with hoisted variables (@lukastaegert)
924
925## 2.53.2
926
927_2021-07-15_
928
929### Bug Fixes
930
931- Identify additional TDZ situations in functions that are run more than once (#4177)
932- Fix a scoping issue when a variable inside a catch scope matches the scope parameter's name (#4178)
933
934### Pull Requests
935
936- [#4177](https://github.com/rollup/rollup/pull/4177): Fix additional let/var init bugs (@kzc)
937- [#4178](https://github.com/rollup/rollup/pull/4178): Correctly create outside variable when shadowed by catch parameter (@lukastaegert)
938
939## 2.53.1
940
941_2021-07-11_
942
943### Bug Fixes
944
945- Do not omit namespace reexports when `treeshake` is `false` (#4175)
946
947### Pull Requests
948
949- [#4175](https://github.com/rollup/rollup/pull/4175): Generate namespace objects when not tree-shaking (@lukastaegert)
950
951## 2.53.0
952
953_2021-07-09_
954
955### Features
956
957- Add `maxParallelFileReads` option to limit read operations with a default of 20 (#4170)
958
959### Pull Requests
960
961- [#4170](https://github.com/rollup/rollup/pull/4170): Limit parallel file reads to prevent "EMFILE: too many open files" error (@schummar)
962
963## 2.52.8
964
965_2021-07-07_
966
967### Bug Fixes
968
969- Automatically handle many use `var` before declaration and TDZ access scenarios correctly without the need for `treeshake.correctVarValueBeforeDeclaration` (#4148)
970
971### Pull Requests
972
973- [#4148](https://github.com/rollup/rollup/pull/4148): Fix var/const/let variable use before declaration (@kzc and @lukastaegert)
974
975## 2.52.7
976
977_2021-07-02_
978
979### Bug Fixes
980
981- Fix an issue where reassignments where not tracked through async function returns (#4163)
982
983### Pull Requests
984
985- [#4163](https://github.com/rollup/rollup/pull/4163): Deoptimize return values of async functions (@lukastaegert)
986
987## 2.52.6
988
989_2021-07-01_
990
991### Bug Fixes
992
993- Fix an issue where reassignments where not tracked through an await expression (#4162)
994
995### Pull Requests
996
997- [#4162](https://github.com/rollup/rollup/pull/4162): doptimize awaited expressions (@lukastaegert)
998
999## 2.52.5
1000
1001_2021-07-01_
1002
1003### Bug Fixes
1004
1005- Properly display parser errors not tied to a code location (#4160)
1006
1007### Pull Requests
1008
1009- [#4160](https://github.com/rollup/rollup/pull/4160): fix: max stack call error is caught on locate (@semoal)
1010
1011## 2.52.4
1012
1013_2021-06-30_
1014
1015### Bug Fixes
1016
1017- Fix an error when external namespaces are reexported across several files (#4159)
1018
1019### Pull Requests
1020
1021- [#4159](https://github.com/rollup/rollup/pull/4159): Properly handle double reexports from external namespaces (@lukastaegert)
1022
1023## 2.52.3
1024
1025_2021-06-25_
1026
1027### Bug Fixes
1028
1029- Fix an issue where code was wrongly removed when using vars in nested scopes (#4149)
1030
1031### Pull Requests
1032
1033- [#4149](https://github.com/rollup/rollup/pull/4149): Make sure the initializer of hoisted variables is deoptimized (@lukastaegert)
1034
1035## 2.52.2
1036
1037_2021-06-21_
1038
1039### Bug Fixes
1040
1041- Support falsy plugins in types (#4144)
1042- Do not require return value in renderChunkHook type (#4144)
1043
1044### Pull Requests
1045
1046- [#4144](https://github.com/rollup/rollup/pull/4144): Use TypeScript config and improve some types (@lukastaegert)
1047
1048## 2.52.1
1049
1050_2021-06-17_
1051
1052### Bug Fixes
1053
1054- Fix a memory leak in watch mode (#4142)
1055
1056### Pull Requests
1057
1058- [#4142](https://github.com/rollup/rollup/pull/4142): Make array and object prototype singletons immutable for now (@lukastaegert)
1059
1060## 2.52.0
1061
1062_2021-06-16_
1063
1064### Features
1065
1066- Add `--configPlugin` CLI option to apply plugins to the config file for e.g. TypeScript configs (#3835)
1067- Add "safest" and "smallest" presets to tree-shaking options for easier configuration (#4131)
1068- Add `treeshake.correctVarValueBeforeDeclaration` option to deoptimize `var` declarations (#4139)
1069
1070### Pull Requests
1071
1072- [#3835](https://github.com/rollup/rollup/pull/3835): Add typescript config support (@TheRealSyler)
1073- [#4131](https://github.com/rollup/rollup/pull/4131): Add presets to the tree-shaking options (@lukastaegert)
1074- [#4139](https://github.com/rollup/rollup/pull/4139): Add option to deoptimize var declarations for tree-shaking (@lukastaegert)
1075- [#4141](https://github.com/rollup/rollup/pull/4141): Update dependencies (@lukastaegert)
1076
1077## 2.51.2
1078
1079_2021-06-11_
1080
1081### Bug Fixes
1082
1083- Include modules imported from no-treeshake modules even if they would be empty (#4138)
1084
1085### Pull Requests
1086
1087- [#4138](https://github.com/rollup/rollup/pull/4138): Include all dependencies from modules with no-treeshake (@lukastaegert)
1088
1089## 2.51.1
1090
1091_2021-06-08_
1092
1093### Bug Fixes
1094
1095- Fix error when using `defineConfig` (#4134)
1096
1097### Pull Requests
1098
1099- [#4134](https://github.com/rollup/rollup/pull/4134): export `rollup.defineConfig` at runtime (@mshrtsr)
1100
1101## 2.51.0
1102
1103_2021-06-06_
1104
1105### Features
1106
1107- Add a helper for IntelliSense support in config files (#4127)
1108
1109### Bug Fixes
1110
1111- Improve performance when generating source maps (#4122)
1112
1113### Pull Requests
1114
1115- [#4122](https://github.com/rollup/rollup/pull/4122): User Map to optimize performance (@izevo)
1116- [#4127](https://github.com/rollup/rollup/pull/4127): Export defineConfig defines the auxiliary function of the configuration (@rxliuli)
1117
1118## 2.50.6
1119
1120_2021-06-03_
1121
1122### Bug Fixes
1123
1124- Do not consider the object spread operator as side effect when `propertyReadSideEffects` are false (#4119)
1125- Detect side effects when returning thenables from async arrow functions (#4120)
1126
1127### Pull Requests
1128
1129- [#4119](https://github.com/rollup/rollup/pull/4119): Respect propertyReadSideEffects in spread elements (@lukastaegert)
1130- [#4120](https://github.com/rollup/rollup/pull/4120): Detect async arrow thenable side effects (@lukastaegert)
1131
1132## 2.50.5
1133
1134_2021-05-30_
1135
1136### Bug Fixes
1137
1138- Detect side effects when accessing thenables (#4115)
1139
1140### Pull Requests
1141
1142- [#4114](https://github.com/rollup/rollup/pull/4114): use `colorette` instead of `turbocolor` (@ryuever)
1143- [#4115](https://github.com/rollup/rollup/pull/4115): Tracks side effects of thenables (@lukastaegert)
1144
1145## 2.50.4
1146
1147_2021-05-29_
1148
1149### Bug Fixes
1150
1151- Fix a situation where tree-shaking would stop including nodes prematurely (#4111)
1152- Track mutations and accessor side effects when using `__proto__` in an object literal (#4112)
1153- Check for getter effects when spreading an object (#4113)
1154
1155### Pull Requests
1156
1157- [#4111](https://github.com/rollup/rollup/pull/4111): Always request a new tree-shaking pass when deoptimizations of a node are first included (@lukastaegert)
1158- [#4112](https://github.com/rollup/rollup/pull/4112): Actually set the prototype when using a **proto** property (@lukastaegert)
1159- [#4113](https://github.com/rollup/rollup/pull/4113): Track access side effects when using object spread operator (@lukastaegert)
1160
1161## 2.50.3
1162
1163_2021-05-28_
1164
1165### Bug Fixes
1166
1167- Wrap parentheses around leading elements in simplified sequence expressions if this would otherwise lead to invalid code (#4110)
1168- Do not associate block soped variables in catch clauses with the clause parameter (#4108)
1169- Do not associate hoisted variables in catch clauses with outside variables if they match the parameter (#4108)
1170- Use correct "this" context for tagged template literal member expressions in simplified sequences (#4110)
1171
1172### Pull Requests
1173
1174- [#4108](https://github.com/rollup/rollup/pull/4108): Correctly handle catch declarations (@lukastaegert)
1175- [#4110](https://github.com/rollup/rollup/pull/4110): Invalid sequence expression simplification (@lukastaegert)
1176
1177## 2.50.2
1178
1179_2021-05-27_
1180
1181### Bug Fixes
1182
1183- Avoid unnecessary side effects when using methods like `.filter` and `.map` (#4103)
1184- Avoid crash when a module with moduleSideEffects no-treeshake imports a tree-shaken module (#4104)
1185
1186### Pull Requests
1187
1188- [#4103](https://github.com/rollup/rollup/pull/4103): Do not track side-effect-free array methods as side effects (@lukastaegert)
1189- [#4104](https://github.com/rollup/rollup/pull/4104): Fix crash when using inlineDynamicImports with no-treeshake (@lukastaegert)
1190
1191## 2.50.1
1192
1193_2021-05-26_
1194
1195### Bug Fixes
1196
1197- Do not associate pure annotations in simplified expressions with wrong elements (#4095)
1198- Prevent invalid code when simplified conditionals start with an IIFE function expression (#4099)
1199
1200### Pull Requests
1201
1202- [#4095](https://github.com/rollup/rollup/pull/4095): Correctly associate pure annotations and remove invalid ones (@lukastaegert)
1203- [#4099](https://github.com/rollup/rollup/pull/4099): Wrap leading function expression iifes in conditionals (@lukastaegert)
1204
1205## 2.50.0
1206
1207_2021-05-25_
1208
1209### Features
1210
1211- Only include last elements of comma expressions if they are used or have side effects (#4087)
1212
1213### Bug Fixes
1214
1215- Prevent a crash that could occur when calling object methods (#4091)
1216
1217### Pull Requests
1218
1219- [#4085](https://github.com/rollup/rollup/pull/4085): Switch to ESLint (@lukastaegert)
1220- [#4087](https://github.com/rollup/rollup/pull/4087): Drop unused last sequence element (@lukastaegert)
1221- [#4091](https://github.com/rollup/rollup/pull/4091): Prevent crash for recursive "this" deoptimization (@lukastaegert)
1222
1223## 2.49.0
1224
1225_2021-05-23_
1226
1227### Features
1228
1229- Detect side-effect-free static class methods and properties (#4018)
1230- Detect side-effect-free array elements (#4018)
1231- Do not apply deoptimizations from dead code (#4018)
1232
1233### Bug Fixes
1234
1235- Handle side effect detection for getters and setters added in untracked code (#4018)
1236- Track "this" mutations for methods, getters and setters (#4018)
1237
1238### Pull Requests
1239
1240- [#4018](https://github.com/rollup/rollup/pull/4018): Class method effects (@marijnh and @lukastaegert)
1241
1242## 2.48.0
1243
1244_2021-05-15_
1245
1246### Features
1247
1248- Add replacement to conditionally insert asset extensions in `entryFileNames` when preserving modules (#4077)
1249
1250### Bug Fixes
1251
1252- Fix crash when dynamically assigning to namespace members (#4070)
1253- Do not associate pure annotations in front of a semi-colon or comma with succeeding code (#4068)
1254
1255### Pull Requests
1256
1257- [#4068](https://github.com/rollup/rollup/pull/4068): ignore invalid trailing pure annotations (@kzc)
1258- [#4070](https://github.com/rollup/rollup/pull/4070): undefined `deoptimizePath` when the first element is empty string (@si3nloong)
1259- [#4071](https://github.com/rollup/rollup/pull/4071): add node.js v16 support (@dnalborczyk)
1260- [#4077](https://github.com/rollup/rollup/pull/4077): Add assetExtname replacement in entryFileNames (@BPScott)
1261- [#4080](https://github.com/rollup/rollup/pull/4080): Added Rollup logo in README.md (@priyanshurav)
1262- [#4081](https://github.com/rollup/rollup/pull/4081): fix comment regarding invalid annotation handling (@kzc)
1263
1264## 2.47.0
1265
1266_2021-05-04_
1267
1268### Features
1269
1270- Warn about ambiguous imports from combined external namespace reexports (#4064)
1271- In case of combined namespace reexports, always prefer local exports over external namespaces (#4064)
1272- Treat conflicting names in local namespace reexports as undefined (#4064)
1273
1274### Pull Requests
1275
1276- [#4064](https://github.com/rollup/rollup/pull/4064): Prefer locally defined exports and reexports over external namespaces (@lukastaegert)
1277
1278## 2.46.0
1279
1280_2021-04-29_
1281
1282### Features
1283
1284- Add option to disable file name sanitation (#4058)
1285- Add information about importers to unused external import warning (#4054)
1286
1287### Pull Requests
1288
1289- [#4042](https://github.com/rollup/rollup/pull/4042): Use Github actions only (@lukastaegert)
1290- [#4045](https://github.com/rollup/rollup/pull/4045): Fix REPL artefact branch reference (@lukastaegert)
1291- [#4046](https://github.com/rollup/rollup/pull/4046): Use codecov action for coverage (@lukastaegert)
1292- [#4054](https://github.com/rollup/rollup/pull/4054): Add to `UNUSED_EXTERNAL_IMPORT` warning information about the origin of the problem (@cawa-93)
1293- [#4058](https://github.com/rollup/rollup/pull/4058): Add sanitizeFileName option (@guybedford)
1294
1295## 2.45.2
1296
1297_2021-04-13_
1298
1299### Bug Fixes
1300
1301- Do not user a dynamic entry file name for naming a manual chunk (#4040)
1302
1303### Pull Requests
1304
1305- [#4040](https://github.com/rollup/rollup/pull/4040): Prioritize manual chunk name over dynamic entry id (@lukastaegert)
1306
1307## 2.45.1
1308
1309_2021-04-10_
1310
1311### Bug Fixes
1312
1313- Handle falsy return values from async plugin options hooks (#4039)
1314
1315### Pull Requests
1316
1317- [#4039](https://github.com/rollup/rollup/pull/4039): Do not fail when returning null or undefined from an async options hook (@lukastaegert)
1318
1319## 2.45.0
1320
1321_2021-04-09_
1322
1323### Features
1324
1325- Support private class instance methods and accessors (#4034)
1326
1327### Pull Requests
1328
1329- [#4034](https://github.com/rollup/rollup/pull/4034): feat: add support for private class methods (@dnalborczyk)
1330
1331## 2.44.0
1332
1333_2021-03-29_
1334
1335### Features
1336
1337- Add a new option `makeAbsoluteExternalsRelative` to opt out of renormalizing absolute external ids to relative ids (#4021)
1338- Extend the `resolveId` plugin hook to allow forcing or preventing renormalization of absolute external ids (#4021)
1339- Make the rendered code of individual modules available in the generated bundle (#4028)
1340
1341### Bug Fixes
1342
1343- Handle objects with `__proto__` properties correctly (#4019)
1344
1345### Pull Requests
1346
1347- [#4019](https://github.com/rollup/rollup/pull/4019): Deoptimize ObjectExpression when a `__proto__` property is present (@marijnh)
1348- [#4021](https://github.com/rollup/rollup/pull/4021): Improve absolute path handling (@lukastaegert)
1349- [#4026](https://github.com/rollup/rollup/pull/4026): chore: fix vscode launch config (change tdd to bdd) (@jameslahm)
1350- [#4027](https://github.com/rollup/rollup/pull/4027): Post comment for PRs from forks (@lukastaegert)
1351- [#4028](https://github.com/rollup/rollup/pull/4028): Expose rendered module code to generateBundle hook (@btd)
1352
1353## 2.43.1
1354
1355_2021-03-28_
1356
1357### Bug Fixes
1358
1359- Prevent infinite recursions in certain scenarios when calling object properties (#4025)
1360
1361### Pull Requests
1362
1363- [#4025](https://github.com/rollup/rollup/pull/4025): Handle recursive this mutation detection (@lukastaegert)
1364
1365## 2.43.0
1366
1367_2021-03-27_
1368
1369### Features
1370
1371- Track side effects of function properties in objects for better tree-shaking (#4011)
1372
1373### Pull Requests
1374
1375- [#4011](https://github.com/rollup/rollup/pull/4011): Disable pessimistic object deoptimization for calls when the called function doesn't ref this (@marijnh)
1376- [#4012](https://github.com/rollup/rollup/pull/4012): fix `sourcemap` reference in docs (@tjenkinson)
1377- [#4015](https://github.com/rollup/rollup/pull/4015): Use SIGTERM instead of SIGINT to kill test child processes in tests (@marijnh)
1378
1379## 2.42.4
1380
1381_2021-03-24_
1382
1383### Bug Fixes
1384
1385- Do not discard plugin return values when using perf option (#4010)
1386
1387### Pull Requests
1388
1389- [#4010](https://github.com/rollup/rollup/pull/4010): Return hook result inside promise with async timer end (@SuperOleg39)
1390
1391## 2.42.3
1392
1393_2021-03-22_
1394
1395### Bug Fixes
1396
1397- Do not ignore `#__PURE__` comments in front of optional chaining expressions (#4007)
1398
1399### Pull Requests
1400
1401- [#4007](https://github.com/rollup/rollup/pull/4007): Tree-shake pure call expressions with optional chaining (@lukastaegert)
1402
1403## 2.42.2
1404
1405_2021-03-22_
1406
1407### Bug Fixes
1408
1409- Use correct import.meta.url in relative imports from transpiled config files (#4005)
1410
1411### Pull Requests
1412
1413- [#4005](https://github.com/rollup/rollup/pull/4005): Use correct import.meta.url in config files (@lukastaegert)
1414
1415## 2.42.1
1416
1417_2021-03-20_
1418
1419### Bug Fixes
1420
1421- Do not produce unhandled Promise rejections when plugins throw while using the `perf` option (#4004)
1422
1423### Pull Requests
1424
1425- [#4004](https://github.com/rollup/rollup/pull/4004): Fixed unhandled promise rejections (@gluck)
1426
1427## 2.42.0
1428
1429_2021-03-19_
1430
1431### Features
1432
1433- Prevent infinite loops when several plugins are using `this.resolve` in their resolveId hook (#4000)
1434
1435### Pull Requests
1436
1437- [#4000](https://github.com/rollup/rollup/pull/4000): Break infinite loops in this.resolve (@lukastaegert)
1438
1439## 2.41.5
1440
1441_2021-03-18_
1442
1443### Bug Fixes
1444
1445- Make sure unused property accesses of external namespaces can be tree-shaken (#4001)
1446
1447### Pull Requests
1448
1449- [#4001](https://github.com/rollup/rollup/pull/4001): Do not count accessing members of an external namespace as side-effects (@lukastaegert)
1450
1451## 2.41.4
1452
1453_2021-03-16_
1454
1455### Bug Fixes
1456
1457- Do not replace external namespace imports with individual named imports to avoid changing behaviour with regard to missing exports (#3999)
1458
1459### Pull Requests
1460
1461- [#3999](https://github.com/rollup/rollup/pull/3999): Allow to safely probe external namespaces (@lukastaegert)
1462
1463## 2.41.3
1464
1465_2021-03-16_
1466
1467### Bug Fixes
1468
1469- Always retain arguments passed to empty object pattern parameters (#3998)
1470
1471### Pull Requests
1472
1473- [#3998](https://github.com/rollup/rollup/pull/3998): Do not create invalid code if a function argument is an empty object pattern (@lukastaegert)
1474
1475## 2.41.3
1476
1477_2021-03-16_
1478
1479### Bug Fixes
1480
1481- Always retain arguments passed to empty object pattern parameters (#3998)
1482
1483### Pull Requests
1484
1485- [#3998](https://github.com/rollup/rollup/pull/3998): Do not create invalid code if a function argument is an empty object pattern (@lukastaegert)
1486
1487## 2.41.2
1488
1489_2021-03-12_
1490
1491### Bug Fixes
1492
1493- Also remove sourcemaps comments if plugins return a pre-made ast (#3987)
1494
1495### Pull Requests
1496
1497- [#3987](https://github.com/rollup/rollup/pull/3987): Change removal of sourcemap comment (@yannayl)
1498
1499## 2.41.1
1500
1501_2021-03-11_
1502
1503### Pull Requests
1504
1505- [#3990](https://github.com/rollup/rollup/pull/3990): Add browser sourcemap and remove log (@lukastaegert)
1506
1507## 2.41.0
1508
1509_2021-03-09_
1510
1511### Features
1512
1513- Add option to `treeshake.propertyReadSideEffects` to keep all property accesses (#3985)
1514
1515### Bug Fixes
1516
1517- Also respect pure comment annotations when a plugin provides an AST in the transform hook provided they use this.parse (#3981)
1518
1519### Pull Requests
1520
1521- [#3981](https://github.com/rollup/rollup/pull/3981): Move pure comment annotation to Graph.contextParse (@yannayl)
1522- [#3985](https://github.com/rollup/rollup/pull/3985): implement --treeshake.propertyReadSideEffects=always to handle getters with side effects (@kzc)
1523
1524## 2.40.0
1525
1526_2021-02-26_
1527
1528### Features
1529
1530- Make sure that entry point variable names take precedence over variable names in dependencies when deconflicting (#3977)
1531
1532### Bug Fixes
1533
1534- Replace `:` in generated file names to prevent invalid files on Windows (#3972)
1535
1536### Pull Requests
1537
1538- [#3972](https://github.com/rollup/rollup/pull/3972): Don't allow `:` in file names (@lukastaegert)
1539- [#3976](https://github.com/rollup/rollup/pull/3976): Add soft breaks to guide to improve mobile experience (@lukastaegert)
1540- [#3977](https://github.com/rollup/rollup/pull/3977): Reverse module deconflicting order (@lukastaegert)
1541
1542## 2.39.1
1543
1544_2021-02-23_
1545
1546### Bug Fixes
1547
1548- Make sure local variables named Symbol, Object or Promise do not conflict with code generated by Rollup (#3971)
1549
1550### Pull Requests
1551
1552- [#3964](https://github.com/rollup/rollup/pull/3964): Remove extra word (@jamonholmgren)
1553- [#3971](https://github.com/rollup/rollup/pull/3971): Avoid conflicts with local variables named Symbol, Object, Promise (@lukastaegert)
1554
1555## 2.39.0
1556
1557_2021-02-12_
1558
1559### Features
1560
1561- Add "validate" option to verify generated chunks are valid JavaScript (#3952)
1562
1563### Bug Fixes
1564
1565- Always add exports properties for uninitialized named exports (#3957)
1566- Allow using an external namespace reexport together with named exports (#3959)
1567- Avoid invalid generated code in certain scenarios with SystemJS exports (#3960)
1568
1569### Pull Requests
1570
1571- [#3952](https://github.com/rollup/rollup/pull/3952): implement `validate` output option and `--validate` CLI option (@kzc)
1572- [#3956](https://github.com/rollup/rollup/pull/3956): Update dependencies, fix fsevents issue (@lukastaegert)
1573- [#3957](https://github.com/rollup/rollup/pull/3957): Make sure uninitialised exports turn up via .hasOwnProperty for non-ES formats (@lukastaegert)
1574- [#3959](https://github.com/rollup/rollup/pull/3959): Allow overriding individual exports of reexported external namespaces (@lukastaegert)
1575- [#3960](https://github.com/rollup/rollup/pull/3960): Make sure system exports are valid JavaScript (@lukastaegert)
1576
1577## 2.38.5
1578
1579_2021-02-05_
1580
1581### Bug Fixes
1582
1583- Prevent invalid code when simplifying assignments and delcarations (#3951)
1584- Prevent behaviour-changing line-breaks when simplifying assignments in return statements (#3951)
1585- Slightly improve white-space rendering when simplifying certain expressions (#3951)
1586
1587### Pull Requests
1588
1589- [#3951](https://github.com/rollup/rollup/pull/3951): Wrap simplified assignments if necessary (@lukastaegert)
1590
1591## 2.38.4
1592
1593_2021-02-02_
1594
1595### Bug Fixes
1596
1597- Do not change logic when tree-shaking declarations in if statements or loops (#3947)
1598
1599### Pull Requests
1600
1601- [#3947](https://github.com/rollup/rollup/pull/3947): Do not tear apart declarations in loop or if bodies (@lukastaegert)
1602
1603## 2.38.3
1604
1605_2021-02-01_
1606
1607### Bug Fixes
1608
1609- Prevent an unexpected live-binding when default exporting a synthetic named export (#3946)
1610
1611### Pull Requests
1612
1613- [#3945](https://github.com/rollup/rollup/pull/3945): Upgrade chokidar and fsevents for Apple M1 compatibility (@threepointone)
1614- [#3946](https://github.com/rollup/rollup/pull/3946): Make sure default exports snapshot synthetic named exports (@lukastaegert)
1615
1616## 2.38.2
1617
1618_2021-01-31_
1619
1620### Bug Fixes
1621
1622- Do not generate invalid code for partially tree-shaken declarations in for loops (#3943)
1623- Always include function bodies of functions in side-effect-free modules (#3944)
1624
1625### Pull Requests
1626
1627- [#3943](https://github.com/rollup/rollup/pull/3943): Do not partially tree-shake unused declarations in for loops (@lukastaegert)
1628- [#3944](https://github.com/rollup/rollup/pull/3944): Correctly include functions with side effects from side-effect-free modules (@lukastaegert)
1629
1630## 2.38.1
1631
1632_2021-01-28_
1633
1634### Bug Fixes
1635
1636- Fix internal error when resolving a missing entry point in the browser build (#3935)
1637
1638### Pull Requests
1639
1640- [#3935](https://github.com/rollup/rollup/pull/3935): fix: remove isolated resolve() for compat with browser distribution (@cmorten and @lukastaegert)
1641- [#3936](https://github.com/rollup/rollup/pull/3936): Ensure test after() callback is always executed (@Benjamin-Dobell)
1642- [#3937](https://github.com/rollup/rollup/pull/3937): Modernize references to other software (@ludofischer)
1643
1644## 2.38.0
1645
1646_2021-01-22_
1647
1648### Features
1649
1650- Entirely remove declared variables that only have an initializer side effect (#3933)
1651
1652### Pull Requests
1653
1654- [#3933](https://github.com/rollup/rollup/pull/3933): Tree-shake unused declarations while keeping initializer side-effects (@lukastaegert)
1655
1656## 2.37.1
1657
1658_2021-01-20_
1659
1660### Pull Requests
1661
1662- [#3929](https://github.com/rollup/rollup/pull/3929): Deduplicate acorn import (@lukastaegert)
1663
1664## 2.37.0
1665
1666_2021-01-19_
1667
1668### Features
1669
1670- Always check modules for side effects that only indirectly reexport a used variable (#3840)
1671- Warn if a circular dependency would cause wrong execution order when preserving modules (#3840)
1672
1673### Bug Fixes
1674
1675- Allow consuming synthetic exports via modules that reexport a namespace (#3894)
1676- Do not crash for circular default reexports (#3840)
1677- Do not crash for circular synthetic namespaces (#3840)
1678- Improve circular dependency execution order in certain scenarios (#3840)
1679
1680### Pull Requests
1681
1682- [#3840](https://github.com/rollup/rollup/pull/3840): Improve circular dependency execution order (@lukastaegert)
1683- [#3894](https://github.com/rollup/rollup/pull/3894): Always respect synthetic namespaces in namespace reexport (@lukastaegert)
1684
1685## 2.36.2
1686
1687_2021-01-16_
1688
1689### Bug Fixes
1690
1691- Fix an issue where invalid code was generated for unused assignments with side effects (#3926)
1692
1693### Pull Requests
1694
1695- [#3926](https://github.com/rollup/rollup/pull/3926): Correctly simplify assignments with parentheses (@lukastaegert)
1696
1697## 2.36.1
1698
1699_2021-01-06_
1700
1701### Bug Fixes
1702
1703- Solve issues that result in invalid code when partially removing assignments (#3921)
1704
1705### Pull Requests
1706
1707- [#3921](https://github.com/rollup/rollup/pull/3921): Prevent invalid code when removing assignment target of side-effectful object expression (@lukastaegert)
1708
1709## 2.36.0
1710
1711_2021-01-05_
1712
1713### Features
1714
1715- Support partial tree-shaking of chained assignments and unused assignment targets (#3919)
1716
1717### Pull Requests
1718
1719- [#3919](https://github.com/rollup/rollup/pull/3919): Treeshake chained assignment expressions (@lukastaegert)
1720
1721## 2.35.1
1722
1723_2020-12-14_
1724
1725### Bug Fixes
1726
1727- Allow closing the bundle when watching in case of generate errors by adding the bundle to the error event (#3909)
1728- Automatically close all bundles on generate errors when watching and using the CLI (#3909)
1729- Try to create remaining bundles when watching and one of them throws (#3909)
1730
1731### Pull Requests
1732
1733- [#3909](https://github.com/rollup/rollup/pull/3909): Forward bundle through watch error events (@lukastaegert)
1734
1735## 2.35.0
1736
1737_2020-12-14_
1738
1739### Features
1740
1741- Add `closeBundle` hook that is triggered by `bundle.close()` in the JS API (#3883)
1742
1743### Pull Requests
1744
1745- [#3883](https://github.com/rollup/rollup/pull/3883): Revert pattern to folder export (@intrnl)
1746
1747## 2.34.2
1748
1749_2020-12-06_
1750
1751### Bug Fixes
1752
1753- Revert pattern export change (#3898)
1754
1755### Pull Requests
1756
1757- [#3898](https://github.com/rollup/rollup/pull/3898): Revert pattern to folder export (@lukastaegert)
1758
1759## 2.34.1
1760
1761_2020-12-03_
1762
1763### Bug Fixes
1764
1765- Avoid Node deprecation warning by using a pattern export for nested Rollup files (#3896)
1766
1767### Pull Requests
1768
1769- [#3887](https://github.com/rollup/rollup/pull/3887): Run memory leak test on all systems (@lukastaegert)
1770- [#3892](https://github.com/rollup/rollup/pull/3892): Add pull_request to windows github actions (@shellscape)
1771- [#3893](https://github.com/rollup/rollup/pull/3893): Update dependencies (@lukastaegert)
1772- [#3896](https://github.com/rollup/rollup/pull/3896): Replace deprecated folder package export with pattern export (@lukastaegert)
1773
1774## 2.34.0
1775
1776_2020-11-29_
1777
1778### Features
1779
1780- Support RequireJS comaptible AMD ids in code-splitting builds via amd.autoId (#3867)
1781- Allow adding an AMD id base path (#3867)
1782
1783### Bug Fixes
1784
1785- Warn when using an constant AMD id in a code-splitting build (#3867)
1786
1787### Pull Requests
1788
1789- [#3867](https://github.com/rollup/rollup/pull/3867): Implement amd.autoId/amd.basePath options (@tjenkinson)
1790
1791## 2.33.3
1792
1793_2020-11-18_
1794
1795### Bug Fixes
1796
1797- Do not use `.js` extension when importing AMD files from a UMD bundle (#3872)
1798
1799### Pull Requests
1800
1801- [#3861](https://github.com/rollup/rollup/pull/3861): Update chat/support links (@shellscape)
1802- [#3872](https://github.com/rollup/rollup/pull/3872): Also removeExtensionFromRelativeAmdId in UMD finaliser (@tjenkinson)
1803
1804## 2.33.2
1805
1806_2020-11-14_
1807
1808### Bug Fixes
1809
1810- Fix an issue where statements were ignored after a conditional return in a labeled statement (#3871)
1811
1812### Pull Requests
1813
1814- [#3871](https://github.com/rollup/rollup/pull/3871): Correctly track label usage in try statements (@Amareis)
1815
1816## 2.33.1
1817
1818_2020-11-02_
1819
1820### Bug Fixes
1821
1822- Add `syntheticNamedExports` to `this.getModuleInfo` to align with documentation (#3847)
1823
1824### Pull Requests
1825
1826- [#3847](https://github.com/rollup/rollup/pull/3847): Expose syntheticNamedExports to ModuleInfo (@Amareis)
1827- [#3852](https://github.com/rollup/rollup/pull/3852): Fix typo on docs (@jpsc)
1828
1829## 2.33.0
1830
1831_2020-11-01_
1832
1833### Features
1834
1835- Add parameter to "watchChange" hook to denote if a change was an addition, update or deletion (#3841)
1836- Add "closeWatcher" hook to allow plugins to clean up resources when the watcher is closed (#3841)
1837- Add "this.getWatchFiles" function to plugin context to get the current set of watched files (#3841)
1838
1839### Pull Requests
1840
1841- [#3841](https://github.com/rollup/rollup/pull/3841): Improved watcher hooks (@Amareis)
1842- [#3848](https://github.com/rollup/rollup/pull/3848): Add options hook to asyncpluginhooks (@intrnl)
1843
1844## 2.32.1
1845
1846_2020-10-21_
1847
1848### Bug Fixes
1849
1850- Print warning location for plugin warnings if only `loc` is supplied (#3824)
1851
1852### Pull Requests
1853
1854- [#3824](https://github.com/rollup/rollup/pull/3824): plugin warnings not showing warning.loc (@luciotato)
1855
1856## 2.32.0
1857
1858_2020-10-16_
1859
1860### Features
1861
1862- Extend `preserveEntrySignatures` with a value `"exports-only"` to allow extension only if an entry does not have exports (#3823)
1863
1864### Pull Requests
1865
1866- [#3823](https://github.com/rollup/rollup/pull/3823): Add "exports-only" option to preserveSignature (@lukastaegert)
1867
1868## 2.31.0
1869
1870_2020-10-15_
1871
1872### Features
1873
1874- When using the `output.moduleToStringTag` option, also add the tag to entries with exports and simulated external namespaces (#3822)
1875- Add the `__esModule` interop marker to IIFE global variables unless `output.esModule` is turned off (#3822)
1876
1877### Pull Requests
1878
1879- [#3822](https://github.com/rollup/rollup/pull/3822): Add module toStringTag to entries and interop namespaces (@lukastaegert)
1880
1881## 2.30.0
1882
1883_2020-10-13_
1884
1885### Features
1886
1887- Add `moduleParsed` hook that is called for each module once code and AST are available (#3813)
1888- Include code and AST in `this.getModuleInfo` (#3813)
1889
1890### Bug Fixes
1891
1892- Provide the original Acorn AST instead of the internal one when resolving dynamic imports that contain non-trivial expressions (#3813)
1893
1894### Pull Requests
1895
1896- [#3813](https://github.com/rollup/rollup/pull/3813): Add moduleParsed plugin hook (@lukastaegert)
1897- [#3815](https://github.com/rollup/rollup/pull/3815): Docs: wile => while (@tjenkinson)
1898- [#3817](https://github.com/rollup/rollup/pull/3817): Docs: fix code snippet (@codefrau)
1899- [#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)
1900
1901## 2.29.0
1902
1903_2020-10-08_
1904
1905### Features
1906
1907- Allow passing custom options to other plugins via `this.resolve` (#3807)
1908- Allow attaching custom meta information to modules when resolving, loading or transforming (#3807)
1909- Do not throw but return `null` when using `this.getModuleInfo` for an unknown id (#3807)
1910
1911### Bug Fixes
1912
1913- Trigger build in watch mode when files are added to a watched directory (#3812)
1914- Make `code` optional when transforming modules (#3807)
1915
1916### Pull Requests
1917
1918- [#3807](https://github.com/rollup/rollup/pull/3807): Implement new APIs for inter-plugin communication (@lukastaegert)
1919- [#3808](https://github.com/rollup/rollup/pull/3808): Document that the default value of --format is 'es' (@jameshfisher)
1920- [#3812](https://github.com/rollup/rollup/pull/3812): Watch: listen for new files added to a directory (@dmitrage)
1921
1922## 2.28.2
1923
1924_2020-09-24_
1925
1926### Bug Fixes
1927
1928- Fix a source of possible variable name conflicts when using preserveModules with SystemJS (#3796)
1929
1930### Pull Requests
1931
1932- [#3792](https://github.com/rollup/rollup/pull/3792): add documentation for output.PreserveModulesRoot (@davidroeca)
1933- [#3796](https://github.com/rollup/rollup/pull/3796): Fix SystemJS default variable conflict (@lukastaegert)
1934
1935## 2.28.1
1936
1937_2020-09-21_
1938
1939### Bug Fixes
1940
1941- Fix a path slash issue when using the preserveModulesRoot option on Windows (#3791)
1942
1943### Pull Requests
1944
1945- [#3791](https://github.com/rollup/rollup/pull/3791): Fix preserveModulesRoot path on Windows (@lukastaegert)
1946
1947## 2.28.0
1948
1949_2020-09-21_
1950
1951### Features
1952
1953- Add an option to treat modules at a given path as located at root when preserving modules (#3786)
1954
1955### Pull Requests
1956
1957- [#3786](https://github.com/rollup/rollup/pull/3786): Add preserveModulesRoot config option (@davidroeca)
1958
1959## 2.27.1
1960
1961_2020-09-17_
1962
1963### Bug Fixes
1964
1965- Do not fail when using ES module imports in symlinked config files (#3783)
1966
1967### Pull Requests
1968
1969- [#3783](https://github.com/rollup/rollup/pull/3783): Handle loading symlinked config files (@lukastaegert)
1970
1971## 2.27.0
1972
1973_2020-09-16_
1974
1975### Features
1976
1977- Support specifying a file extension when reading from stdin (#3775)
1978
1979### Bug Fixes
1980
1981- Do not break logic if a branch with hoisted variables is tree-shaken in an else-if statement (#3782)
1982
1983### Pull Requests
1984
1985- [#3770](https://github.com/rollup/rollup/pull/3770): Docs: Exception for babel plugin and commonjs plugin (@jsk7)
1986- [#3775](https://github.com/rollup/rollup/pull/3775): add ability to specify stdin file extension via --stdin=ext (@kzc)
1987- [#3782](https://github.com/rollup/rollup/pull/3782): Handle hoisted variables in dead branches of nested if statements (@lukastaegert)
1988
1989## 2.26.11
1990
1991_2020-09-08_
1992
1993### Bug Fixes
1994
1995- Do not fail for unknown nodes as if statement branches (#3769)
1996
1997### Pull Requests
1998
1999- [#3769](https://github.com/rollup/rollup/pull/3769): Handle debugger statements as if-statement branches (@lukastaegert)
2000
2001## 2.26.10
2002
2003_2020-09-04_
2004
2005### Bug Fixes
2006
2007- Do not create invalid code when simplifying expressions in return statements that contain line comments (#3762)
2008
2009### Pull Requests
2010
2011- [#3757](https://github.com/rollup/rollup/pull/3757): Fix api docs loadconfigfile (@maxwell8888)
2012- [#3762](https://github.com/rollup/rollup/pull/3762): Handle line-comments when removing line-breaks to prevent ASI (@lukastaegert)
2013
2014## 2.26.9
2015
2016_2020-09-01_
2017
2018### Bug Fixes
2019
2020- Add regular expression support to watch include/exclude types (#3754)
2021
2022### Pull Requests
2023
2024- [#3754](https://github.com/rollup/rollup/pull/3754): Add RegExp to the include and exclude fields of the WatcherOptions type (@dagda1)
2025- [#3756](https://github.com/rollup/rollup/pull/3756): Update FAQ: I think it was meant "external" instead of "other-entry.js" (@madacol)
2026
2027## 2.26.8
2028
2029_2020-08-29_
2030
2031### Bug Fixes
2032
2033- Make sure that both unresolved and resolved ids are passed to the `external` option in all cases (#3753)
2034
2035### Pull Requests
2036
2037- [#3753](https://github.com/rollup/rollup/pull/3753): Also pass resolved ids to external if they use the object for (@lukastaegert)
2038
2039## 2.26.7
2040
2041_2020-08-28_
2042
2043### Bug Fixes
2044
2045- Avoid invalid code when rendering hoisted variable declarations from dead branches (#3752)
2046- Mark the `options` parameter of `this.parse` as optional for TypeScript plugins (#3750)
2047
2048### Pull Requests
2049
2050- [#3750](https://github.com/rollup/rollup/pull/3750): Make `options` of `PluginContext#parse` optional (@intrnl)
2051- [#3752](https://github.com/rollup/rollup/pull/3752): Extract hoisted variables from dead branches (@lukastaegert)
2052
2053## 2.26.6
2054
2055_2020-08-27_
2056
2057### Bug Fixes
2058
2059- Avoid conflicts between the namespace of synthetic named exports and local variables (#3747)
2060
2061### Pull Requests
2062
2063- [#3747](https://github.com/rollup/rollup/pull/3747): Properly deconflict synthetic named exports (@lukastaegert)
2064
2065## 2.26.5
2066
2067_2020-08-22_
2068
2069### Bug Fixes
2070
2071- Use correctly deconflicted variable names for reexported namespaces in ES formats (#3742)
2072
2073### Pull Requests
2074
2075- [#3742](https://github.com/rollup/rollup/pull/3742): Avoid variable name conflict when reexporting several namespaces from a chunk (@lukastaegert)
2076
2077## 2.26.4
2078
2079_2020-08-19_
2080
2081### Bug Fixes
2082
2083- Fix a situation where invalid code was rendered when dynamically importing a module with synthetic named exports when preserving modules (#3738)
2084- Create a proper namespace object when in a non-es format, a namespace is imported from a chunk with `default` export mode (#3738)
2085- Use the same variable when in a chunk, a namespace is both imported and reexported as a binding (#3738)
2086- Do not include the synthetic namespace in static entry points unless it is actually used (#3738)
2087- Make sure the chunking of one output does not interfere with the namespace objects of another output (#3738)
2088
2089### Pull Requests
2090
2091- [#3738](https://github.com/rollup/rollup/pull/3738): Improve synthetic entry handling (@lukastaegert)
2092
2093## 2.26.3
2094
2095_2020-08-16_
2096
2097### Bug Fixes
2098
2099- Fix a situation where line-breaks in a nested simplified conditional expression could result in broken code (#3734)
2100
2101### Pull Requests
2102
2103- [#3734](https://github.com/rollup/rollup/pull/3734): Prevent ASI when simplifying a nested logical expression (@lukastaegert)
2104
2105## 2.26.2
2106
2107_2020-08-16_
2108
2109### Bug Fixes
2110
2111- Fix a situation where line-breaks in a simplified conditional expression could result in broken code (#3732)
2112
2113### Pull Requests
2114
2115- [#3732](https://github.com/rollup/rollup/pull/3732): Prevent unintended ASI for nested conditionals (@lukastaegert)
2116
2117## 2.26.1
2118
2119_2020-08-16_
2120
2121### Bug Fixes
2122
2123- Correctly render external namespace imports when only generating SystemJS output (#3731)
2124
2125### Pull Requests
2126
2127- [#3731](https://github.com/rollup/rollup/pull/3731): Render system namespace import (@sastan and @lukastaegert)
2128
2129## 2.26.0
2130
2131_2020-08-15_
2132
2133### Features
2134
2135- Add a new entry `importedBindings` to the bundle information to list bindings per dependency (#3722)
2136
2137### Bug Fixes
2138
2139- Do not render an invalid UMD wrapper when no bindings are imported from a dependency (#3724)
2140- Avoid situations where removing the `else` branch from an `if` statement might catch the `else` branch from another one (#3725)
2141
2142### Pull Requests
2143
2144- [#3722](https://github.com/rollup/rollup/pull/3722): Add import specifiers to bundle information (@lukastaegert)
2145- [#3724](https://github.com/rollup/rollup/pull/3724): Fix missing variables for UMD and IIFE builds (@lukastaegert)
2146- [#3725](https://github.com/rollup/rollup/pull/3725): Do not entirely remove else branch if another else branch might accidentally be referenced (@lukastaegert)
2147
2148## 2.25.0
2149
2150_2020-08-14_
2151
2152### Features
2153
2154- Add `--failAfterWarnings` CLI flag that will complete builds with warnings but return an error at the end (#3712)
2155
2156### Pull Requests
2157
2158- [#3712](https://github.com/rollup/rollup/pull/3712): Implement `--failAfterWarnings` flag (@tjenkinson)
2159
2160## 2.24.0
2161
2162_2020-08-13_
2163
2164### Features
2165
2166- Allow defining interop per dependency via a function (#3710)
2167- Support interop "auto" as a more compatible version of "true" (#3710)
2168- Support interop "default" and "esModule" to avoid unnecessary interop helpers (#3710)
2169- Support interop "defaultOnly" for simplified helpers and Node ESM interop compatible output (#3710)
2170- Respect interop option for external dynamic imports (#3710)
2171- Support live-bindings for external default imports in non-ES formats unless "externalLiveBindings" is "false" (#3710)
2172- Use shared default interop helpers for AMD, UMD and IIFE formats (#3710)
2173- Avoid unnecessarily deconflicted module variables in non-ES formats (#3710)
2174- Freeze generated interop namespace objects (#3710)
2175- Always mark interop helpers as pure (#3710)
2176- Avoid default export interop if there is already an interop namespace object (#3710)
2177- Sort all `require` statements to the top in CommonJS output for easier back-transpilation to ES modules by other tools (#3710)
2178
2179### Bug Fixes
2180
2181- Handle accessing `super` in static class fields (#3720)
2182- Deconflict the names of helper variables introduced for interop (#3710)
2183- Generate proper namespace objects for static namespace imports in non-ES formats (#3710)
2184- Do not add unused interop helpers when using the renderDynamicImport hook (#3710)
2185
2186### Pull Requests
2187
2188- [#3710](https://github.com/rollup/rollup/pull/3710): Rework interop handling (@lukastaegert)
2189- [#3720](https://github.com/rollup/rollup/pull/3720): Handle super in static class fields (@lukastaegert)
2190
2191## 2.23.1
2192
2193_2020-08-07_
2194
2195### Bug Fixes
2196
2197- Fix an issue where dynamically importing an entry point could return a malformed namespace for CJS and AMD formats (#3709)
2198
2199### Pull Requests
2200
2201- [#3709](https://github.com/rollup/rollup/pull/3709): Properly construct namespace when dynamically importing chunks with facades in default export mode (@lukastaegert)
2202
2203## 2.23.0
2204
2205_2020-07-23_
2206
2207### Features
2208
2209- Handle environments with only globalThis in UMD output (#3691)
2210
2211### Pull Requests
2212
2213- [#3691](https://github.com/rollup/rollup/pull/3691): Check for globalThis in UMD wrapper (@lukastaegert)
2214
2215## 2.22.2
2216
2217_2020-07-21_
2218
2219### Bug Fixes
2220
2221- Always generate correct exports when an implicit entry is reexporting from another module (#3688)
2222
2223### Pull Requests
2224
2225- [#3688](https://github.com/rollup/rollup/pull/3688): Include all relevant modules to generate reexports for implicit dependencies (@lukastaegert)
2226
2227## 2.22.1
2228
2229_2020-07-18_
2230
2231### Bug Fixes
2232
2233- Remove unused arguments when calling a conditional expression (#3680)
2234
2235### Pull Requests
2236
2237- [#3680](https://github.com/rollup/rollup/pull/3680): Allow tree-shaking of arguments of functions that are returned by conditional expressions (@lukastaegert)
2238
2239## 2.22.0
2240
2241_2020-07-18_
2242
2243### Features
2244
2245- Allow resolving synthetic named exports via an arbitrary export name (#3657)
2246- 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)
2247
2248### Pull Requests
2249
2250- [#3657](https://github.com/rollup/rollup/pull/3657): Add basic support for using a non-default export for syntheticNamedExports (@lukastaegert)
2251- [#3659](https://github.com/rollup/rollup/pull/3659): Warn when implicitly using default export mode (@lukastaegert)
2252
2253## 2.21.0
2254
2255_2020-07-07_
2256
2257### Features
2258
2259- Allow plugins to disable tree-shaking for individual modules to ensure even empty modules are associated with chunks (#3663)
2260
2261### Pull Requests
2262
2263- [#3663](https://github.com/rollup/rollup/pull/3663): Disable treeshaking per module (@lukastaegert)
2264
2265## 2.20.0
2266
2267_2020-07-06_
2268
2269### Features
2270
2271- Support using a function to generate different chunk and asset naming patterns per chunk or asset (#3658)
2272- Add `referencedFiles` property to the chunk info in generateBundle to list referenced assets (#3661)
2273
2274### Pull Requests
2275
2276- [#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)
2277- [#3661](https://github.com/rollup/rollup/pull/3661): Add referenced files to bundle (@lukastaegert)
2278
2279## 2.19.0
2280
2281_2020-07-05_
2282
2283### Features
2284
2285- Allow plugins to return a Promise in the options hook (#3660)
2286
2287### Pull Requests
2288
2289- [#3660](https://github.com/rollup/rollup/pull/3660): Make options hooks async (@TomerAberbach)
2290
2291## 2.18.2
2292
2293_2020-07-02_
2294
2295### Bug Fixes
2296
2297- Do not remove spread element args when the corresponding positional parameter is unused (#3652)
2298
2299### Pull Requests
2300
2301- [#3652](https://github.com/rollup/rollup/pull/3652): Do not tree-shake arguments that contain a spread element (@lukastaegert)
2302
2303## 2.18.1
2304
2305_2020-06-26_
2306
2307### Bug Fixes
2308
2309- Make sure synthetic exports are present when a module is imported dynamically (#3648)
2310- Strip the `rollup-plugin-` prefix off the plugin name when looking for the plugin export in a CLI plugin without a default export (#3647)
2311- Convert plugin names with dashes to camel case when looking for the plugin export in a CLI plugin without a default export (#3647)
2312
2313### Pull Requests
2314
2315- [#3647](https://github.com/rollup/rollup/pull/3647): Strip rollup-plugin prefix to find named plugin exports, throw when export cannot be found (@lukastaegert)
2316- [#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)
2317
2318## 2.18.0
2319
2320_2020-06-22_
2321
2322### Features
2323
2324- `inlineDynamicImports`, `manualChunks` and `preserveModules` can now be used as output options (#3645)
2325- Use sourcemaps for certain warnings that reference source code locations (#3645)
2326
2327### Bug Fixes
2328
2329- `this.getFileName` will now always return the correct file name for chunks when multiple outputs are created (#3645)
2330
2331### Pull Requests
2332
2333- [#3645](https://github.com/rollup/rollup/pull/3645): Per output chunking (@lukastaegert)
2334
2335## 2.17.1
2336
2337_2020-06-19_
2338
2339### Bug Fixes
2340
2341- Properly resolve accessing properties of namespace members again (#3643)
2342
2343### Pull Requests
2344
2345- [#3643](https://github.com/rollup/rollup/pull/3643): Fix accessing nested properties of namespaces (@lukastaegert)
2346
2347## 2.17.0
2348
2349_2020-06-17_
2350
2351### Features
2352
2353- When importing Rollup via package.exports, always fall back to the browser ESM build for non-Node environments (#3634)
2354- Create more efficient code when handling namespace mutations (#3637)
2355
2356### Bug Fixes
2357
2358- Fix a severe performance regression when the same module is imported by a lot of modules (#3641)
2359- Properly escape special characters in imports (#3638)
2360
2361### Pull Requests
2362
2363- [#3634](https://github.com/rollup/rollup/pull/3634): Set browser build in exports (@guybedford)
2364- [#3637](https://github.com/rollup/rollup/pull/3637): Do not include the whole namespace when illegally mutating a namespace (@lukastaegert)
2365- [#3638](https://github.com/rollup/rollup/pull/3638): Support backslash escaping, retain exact newline escaping (@guybedford)
2366- [#3641](https://github.com/rollup/rollup/pull/3641): Fix performance regression when a file is imported by many importers (@lukastaegert)
2367
2368## 2.16.1
2369
2370_2020-06-13_
2371
2372### Bug Fixes
2373
2374- Do not produce invalid code when an external or chunk id contain quotes or line-breaks (#3632)
2375- Do not fail but emit a warning when mutating a namespace object (#3633)
2376
2377### Pull Requests
2378
2379- [#3632](https://github.com/rollup/rollup/pull/3632): Handle single quote escaping in ids (@guybedford)
2380- [#3633](https://github.com/rollup/rollup/pull/3633): Turn namespace assignment error into a warning (@guybedford)
2381
2382## 2.16.0
2383
2384_2020-06-12_
2385
2386### Features
2387
2388- Add support for numeric separators (#3626)
2389- Switch to finalized ESTree optional chaining AST (#3628)
2390
2391### Pull Requests
2392
2393- [#3626](https://github.com/rollup/rollup/pull/3626): Support numeric separator (@TrySound)
2394- [#3628](https://github.com/rollup/rollup/pull/3628): Acorn 7.3.0 upgrade (@guybedford)
2395- [#3631](https://github.com/rollup/rollup/pull/3631): Improve discoverability of `manualChunks` for code splitting (@zlamma)
2396
2397## 2.15.0
2398
2399_2020-06-08_
2400
2401### Features
2402
2403- Allow to skip watching some configs via `watch: false` (#3620)
2404- Provide the resolved sourcemap path to `sourcemapPathTransform` (#3617)
2405
2406### Pull Requests
2407
2408- [#3617](https://github.com/rollup/rollup/pull/3617): Update sourcemapPathTransform to also take the path to the sourcemap file as a second argument (@dgoldstein0)
2409- [#3620](https://github.com/rollup/rollup/pull/3620): Rollup watch only one config in exported array (@luwol03)
2410
2411## 2.14.0
2412
2413_2020-06-07_
2414
2415### Features
2416
2417- Make `this.meta.watchMode` available for plugins to detect watch mode (#3616)
2418
2419### Bug Fixes
2420
2421- Handle exporting the same binding with different names in SystemJS (#3575)
2422
2423### Pull Requests
2424
2425- [#3575](https://github.com/rollup/rollup/pull/3575): Handle some cases of duplicate export bindings (@joeljeske)
2426- [#3616](https://github.com/rollup/rollup/pull/3616): Make watch mode available in plugins (@lukastaegert)
2427
2428## 2.13.1
2429
2430_2020-06-04_
2431
2432### Bug Fixes
2433
2434- Prevent conflicts in SystemJS when `module` is used as a top-level variable (#3614)
2435
2436### Pull Requests
2437
2438- [#3614](https://github.com/rollup/rollup/pull/3614): Handle system reserved identifier dedupes (@guybedford)
2439
2440## 2.13.0
2441
2442_2020-06-03_
2443
2444### Features
2445
2446- Allow to specify that an emitted chunk is only loaded after a given module has loaded to improve chunking (#3606)
2447
2448### Pull Requests
2449
2450- [#3606](https://github.com/rollup/rollup/pull/3606): Enable specifying implicit dependencies when emitting chunks (@lukastaegert)
2451
2452## 2.12.1
2453
2454_2020-06-02_
2455
2456### Bug Fixes
2457
2458- Render valid imports when chunk names correspond to directory names in virtual setups (#3609)
2459
2460### Pull Requests
2461
2462- [#3609](https://github.com/rollup/rollup/pull/3609): Handle imports from chunks with names that correspond to parent directory names of other chunks (@guybedford)
2463
2464## 2.12.0
2465
2466_2020-05-31_
2467
2468### Features
2469
2470- Add an option `--waitForBundleInput` to let the build wait until all entry point files are available before starting (#3577)
2471
2472### Pull Requests
2473
2474- [#3577](https://github.com/rollup/rollup/pull/3577): Wait for bundle input option (@Heerschop)
2475
2476## 2.11.2
2477
2478_2020-05-28_
2479
2480### Bug Fixes
2481
2482- Include side-effects in the second argument of `Array.from` (#3604)
2483
2484### Pull Requests
2485
2486- [#3604](https://github.com/rollup/rollup/pull/3604): Mark `Array.from` as side-effectful, use two-argument Array.from when mapping Sets (@lukastaegert)
2487
2488## 2.11.1
2489
2490_2020-05-28_
2491
2492### Bug Fixes
2493
2494- Also include side-effects in files that are marked as side-effect-free if they contain an included default export that is reexported (#3602)
2495
2496### Pull Requests
2497
2498- [#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)
2499
2500## 2.11.0
2501
2502_2020-05-27_
2503
2504### Features
2505
2506- Add basic support for optional chaining (#3582)
2507- Provide a normalized set of options with proper default values to `buildStart` and `renderStart` (#3597)
2508- Do not count adding properties to the prototype of an unused class as a side-effect (#3598)
2509- Support providing `null` for empty setters in SystemJS via option (#3592)
2510
2511### Bug Fixes
2512
2513- Do not fail when using a `/*#__PURE__*/` annotation inside a class field (#3599)
2514- Allow using `--watch` and `--treeshake` together with sub-options such as `--watch.clearScreen` on the command line (#3597)
2515
2516### Pull Requests
2517
2518- [#3582](https://github.com/rollup/rollup/pull/3582): Support optional chaining via acorn fork(@guybedford)
2519- [#3592](https://github.com/rollup/rollup/pull/3592): System format optional setters(@guybedford)
2520- [#3597](https://github.com/rollup/rollup/pull/3597): Provide normalized options (@lukastaegert)
2521- [#3598](https://github.com/rollup/rollup/pull/3598): Treeshake prototype modifications in classes (@lukastaegert)
2522- [#3599](https://github.com/rollup/rollup/pull/3599): Retain pure annotations in class fields (@lukastaegert)
2523- [#3601](https://github.com/rollup/rollup/pull/3601): Fix white-space in docs (@tu4mo)
2524
2525## 2.10.9
2526
2527_2020-05-24_
2528
2529### Bug Fixes
2530
2531- Prevent invalid exports when facades are created (#3590)
2532
2533### Pull Requests
2534
2535- [#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)
2536
2537## 2.10.8
2538
2539_2020-05-23_
2540
2541### Bug Fixes
2542
2543- Fix issues when synthetic named exports are reexported as default exports (#3586)
2544
2545### Pull Requests
2546
2547- [#3584](https://github.com/rollup/rollup/pull/3584): Clarify documentation for `output.paths` (@jacksteamdev)
2548- [#3585](https://github.com/rollup/rollup/pull/3585): Target Node.js v14 instead of v13 in Windows tests (@mangs)
2549- [#3586](https://github.com/rollup/rollup/pull/3586): Handle default reexports of synthetic named exports over several stages (@lukastaegert)
2550
2551## 2.10.7
2552
2553_2020-05-22_
2554
2555### Bug Fixes
2556
2557- Handle modules re-exporting namespaces without further own code (#3576)
2558
2559### Pull Requests
2560
2561- [#3576](https://github.com/rollup/rollup/pull/3576): Fix "cannot read exports of undefined" error (@guybedford)
2562
2563## 2.10.6
2564
2565_2020-05-22_
2566
2567### Bug Fixes
2568
2569- Fix some issues around class fields (#3580)
2570- Prevent a maximum call stack error when a called entity references itself in its declaration (#3581)
2571
2572### Pull Requests
2573
2574- [#3580](https://github.com/rollup/rollup/pull/3580): Update acorn class features (@guybedford)
2575- [#3581](https://github.com/rollup/rollup/pull/3581): Do not fail when including call arguments of recursively defined variables (@lukastaegert)
2576
2577## 2.10.5
2578
2579_2020-05-19_
2580
2581### Bug Fixes
2582
2583- Do not remove side-effects that may influence an included default export declaration when side-effects are disabled (#3572)
2584
2585### Pull Requests
2586
2587- [#3572](https://github.com/rollup/rollup/pull/3572): Observe side-effects in files containing a default export declaration that reexports a variable (@lukastaegert)
2588
2589## 2.10.4
2590
2591_2020-05-19_
2592
2593### Bug Fixes
2594
2595- Tree-shake unused classes with fields unless there are side-effects in the field declaration (#3569)
2596
2597### Pull Requests
2598
2599- [#3569](https://github.com/rollup/rollup/pull/3569): Make sure unused classes with fields are tree-shaken if possible (@lukastaegert)
2600
2601## 2.10.3
2602
2603_2020-05-18_
2604
2605### Bug Fixes
2606
2607- Validate return value of sourcemapPathTransform option (#3561)
2608
2609### Pull Requests
2610
2611- [#3561](https://github.com/rollup/rollup/pull/3561): Throw error if sourcemapPathTransform-option does not return a string (@Simonwep)
2612
2613## 2.10.2
2614
2615_2020-05-15_
2616
2617### Bug Fixes
2618
2619- Properly include calls to mutating array methods in certain scenarios (#3559)
2620
2621### Pull Requests
2622
2623- [#3559](https://github.com/rollup/rollup/pull/3559): Make sure UnknownFooExpressions are included when referenced as return values in a MultiExpression (@lukastaegert)
2624
2625## 2.10.1
2626
2627_2020-05-15_
2628
2629### Bug Fixes
2630
2631- Do not throw when "undefined" is used as a default export (#3558)
2632
2633### Pull Requests
2634
2635- [#3558](https://github.com/rollup/rollup/pull/3558): Properly handle default exporting undefined (@lukastaegert)
2636
2637## 2.10.0
2638
2639_2020-05-13_
2640
2641### Features
2642
2643- Avoid unnecessary empty imports from a facade chunk to the original chunk (#3552)
2644- 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)
2645
2646### Bug Fixes
2647
2648- Do not omit reexports from secondary chunks when creating facades for entry points without hoisting transitive dependencies (#3552)
2649
2650### Pull Requests
2651
2652- [#3552](https://github.com/rollup/rollup/pull/3552): Avoid unnecessary facade dependency inlining (@guybedford)
2653
2654## 2.9.1
2655
2656_2020-05-11_
2657
2658### Bug Fixes
2659
2660- Do not create unintended live-bindings or invalid reexports when reexporting global variables (#3550)
2661
2662### Pull Requests
2663
2664- [#3550](https://github.com/rollup/rollup/pull/3550): Track updates of globals that are exported as default (@lukastaegert)
2665
2666## 2.9.0
2667
2668_2020-05-10_
2669
2670### Features
2671
2672- Add ids of static and dynamic imports to `this.getModuleInfo` (#3542)
2673- Provide `getModuleInfo` and `getModuleIds` to `manualChunks` functions (#3542)
2674- Add nullish coalescing support (#3548)
2675- Make the rebuild delay in watch mode configurable and set the default to `0` for snappy rebuilds (#3502)
2676- Add `this.getModuleIds` to the plugin context as future replacement for `this.moduleIds` (#3542)
2677
2678### Pull Requests
2679
2680- [#3502](https://github.com/rollup/rollup/pull/3502): Configurable build delay (@mattdesl)
2681- [#3542](https://github.com/rollup/rollup/pull/3542): Extend manualChunks API (@lukastaegert)
2682- [#3548](https://github.com/rollup/rollup/pull/3548): Support nullish coalescing with tree-shaking (@lukastaegert)
2683
2684## 2.8.2
2685
2686_2020-05-07_
2687
2688### Bug Fixes
2689
2690- Avoid invalid code when simplifying the body of a shorthand arrow function expression (#3540)
2691
2692### Pull Requests
2693
2694- [#3540](https://github.com/rollup/rollup/pull/3540): Wrap object expressions in parentheses if they become children of an arrow function expression (@lukastaegert)
2695
2696## 2.8.1
2697
2698_2020-05-07_
2699
2700### Bug Fixes
2701
2702- Allow using plugins on CLI that are exported as `exports.default` (#3529)
2703- Do not fail side-effect detection in nested callbacks of builtins (#3539)
2704
2705### Pull Requests
2706
2707- [#3529](https://github.com/rollup/rollup/pull/3529): Use default named export with plugins (@NotWoods)
2708- [#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)
2709
2710## 2.8.0
2711
2712_2020-05-06_
2713
2714### Features
2715
2716- When a dynamically imported chunk contains more exports than the imported module namespace, do not create a facade chunk but an inline namespace (#3535)
2717
2718### Bug Fixes
2719
2720- Do not execute dynamically imported code before synchronous code in the importing module when generating CommonJS (#3535)
2721
2722### Pull Requests
2723
2724- [#3535](https://github.com/rollup/rollup/pull/3535): Avoid dynamic facade chunks (@lukastaegert)
2725
2726## 2.7.6
2727
2728_2020-04-30_
2729
2730### Bug Fixes
2731
2732- Fix a type issue when a default export references a global variable (#3526)
2733
2734### Pull Requests
2735
2736- [#3526](https://github.com/rollup/rollup/pull/3526): Handles default exporting global variables (@lukastaegert)
2737
2738## 2.7.5
2739
2740_2020-04-29_
2741
2742### Bug Fixes
2743
2744- Prevent infinite loop when default values of function parameters in a default export contain a slash (#3522)
2745
2746### Pull Requests
2747
2748- [#3522](https://github.com/rollup/rollup/pull/3522): Avoid infinite loop when finding position for id insertion in default export (@lukastaegert)
2749
2750## 2.7.4
2751
2752_2020-04-29_
2753
2754### Bug Fixes
2755
2756- Fix an issue where wrong variable names were used when preserving modules (#3521)
2757
2758### Pull Requests
2759
2760- [#3521](https://github.com/rollup/rollup/pull/3521): Fix and improve default export alias logic (@lukastaegert)
2761
2762## 2.7.3
2763
2764_2020-04-27_
2765
2766### Bug Fixes
2767
2768- Do not access `__proto__` when running Rollup (#3518)
2769
2770### Pull Requests
2771
2772- [#3518](https://github.com/rollup/rollup/pull/3518): use acorn-class-fields and acorn-static-class-features from npm (@nitsky)
2773
2774## 2.7.2
2775
2776_2020-04-22_
2777
2778### Bug Fixes
2779
2780- Prevent an infinite loop when creating separate manual chunks with circular dependencies (#3510)
2781- Do not fail if "super" is used in the definition of a class field (#3511)
2782- Throw if a plugin tries to emit a file with an absolute Windows path (#3509)
2783
2784### Pull Requests
2785
2786- [#3509](https://github.com/rollup/rollup/pull/3509): Ban emitFile via absolute paths on Windows OS (@SASUKE40)
2787- [#3510](https://github.com/rollup/rollup/pull/3510): Do not fail for circular imports between manual chunks (@lukastaegert)
2788- [#3511](https://github.com/rollup/rollup/pull/3511): Support "super" in class fields (@lukastaegert)
2789
2790## 2.7.1
2791
2792_2020-04-21_
2793
2794### Bug Fixes
2795
2796- Use correct path for dynamic imports if `output.paths` is used (#3508)
2797
2798### Pull Requests
2799
2800- [#3508](https://github.com/rollup/rollup/pull/3508): Respect output.paths in dynamic imports (@lukastaegert)
2801
2802## 2.7.0
2803
2804_2020-04-21_
2805
2806### Features
2807
2808- Add `preserveEntrySignatures` option to control how exports of entry points are handled (#3498)
2809- Add `preserveSignature` flag to `this.emitFile` to control exports of emitted chunks (#3498)
2810- Add `output.minifyInternalExports` option to control if internal exports are minified (#3498)
2811
2812### Pull Requests
2813
2814- [#3498](https://github.com/rollup/rollup/pull/3498): Add option to configure if entry signatures are preserved (@lukastaegert)
2815
2816## 2.6.1
2817
2818_2020-04-12_
2819
2820### Bug Fixes
2821
2822- Close watch mode when stdin closes in a non-TTY environment (#3493)
2823
2824### Pull Requests
2825
2826- [#3493](https://github.com/rollup/rollup/pull/3493): Ensure --watch mode exits correctly when stdin is closed (@jakesgordon)
2827
2828## 2.6.0
2829
2830_2020-04-10_
2831
2832### Features
2833
2834- Allow regular expressions to declare external modules (#3482)
2835
2836### Pull Requests
2837
2838- [#3482](https://github.com/rollup/rollup/pull/3482): Allow regular expressions in config.external (@johannes-z)
2839
2840## 2.5.0
2841
2842This version is identical to 2.4.0
2843
2844## 2.4.0
2845
2846_2020-04-09_
2847
2848### Features
2849
2850- Add support for most private and public class field features (#3488)
2851
2852### Bug Fixes
2853
2854- Do not replace `this` with `undefined` in class field definitions (#3488)
2855
2856### Pull Requests
2857
2858- [#3488](https://github.com/rollup/rollup/pull/3488): Rollup class fields support (@guybedford and @lukastaegert)
2859
2860## 2.3.5
2861
2862_2020-04-09_
2863
2864### Bug Fixes
2865
2866- Never remove labels when tree-shaking is disabled (#3492)
2867
2868### Pull Requests
2869
2870- [#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)
2871
2872## 2.3.4
2873
2874_2020-04-07_
2875
2876### Bug Fixes
2877
2878- Handle re-exporting synthetic exports from entry-points (#3319)
2879- Fix cross-chunk imports of synthetic exports (#3319)
2880- Handle namespace objects that contain re-exported synthetic namespaces (#3319)
2881
2882### Pull Requests
2883
2884- [#3319](https://github.com/rollup/rollup/pull/3319): Handle re-exports of synthetic named exports (@manucorporat and @lukastaegert)
2885
2886## 2.3.3
2887
2888_2020-04-04_
2889
2890### Bug Fixes
2891
2892- Add external namespaces to dynamic namespace objects (#3474)
2893
2894### Pull Requests
2895
2896- [#3474](https://github.com/rollup/rollup/pull/3474): Support external star exports on namespace objects (@guybedford)
2897
2898## 2.3.2
2899
2900_2020-03-31_
2901
2902### Bug Fixes
2903
2904- Only warn but do not fail build when a namespace is called as a function (#3475)
2905- Make sure pre-existing sourcemap comments are also removed when rebuilding using the cache (#3476)
2906
2907### Pull Requests
2908
2909- [#3475](https://github.com/rollup/rollup/pull/3475): Call namespace error as a warning (@guybedford)
2910- [#3476](https://github.com/rollup/rollup/pull/3476): Store locations for removed comments in cache (@lukastaegert)
2911
2912## 2.3.1
2913
2914_2020-03-30_
2915
2916### Bug Fixes
2917
2918- Do not fail if the config file returns an function returning a Promise (#3472)
2919
2920### Pull Requests
2921
2922- [#3472](https://github.com/rollup/rollup/pull/3472): Fix support for async functions as config (@lukastaegert)
2923
2924## 2.3.0
2925
2926_2020-03-29_
2927
2928### Features
2929
2930- Do not transpile config files with `.mjs` extension in Node 13+ or `.cjs` extension in any Node version and load them appropriately (#3445)
2931- Extract helper to load a config file the way rollup does it via `rollup/dist/loadConfigFile` (#3445)
2932
2933### Bug Fixes
2934
2935- Keep watching the config file if an error occurs during initial load in watch node (#3445)
2936- Add a helpful error message when using a transpiled config in a repository with "type": "module" (#3445)
2937
2938### Pull Requests
2939
2940- [#3445](https://github.com/rollup/rollup/pull/3445): Support native ESM configs in Node 13, support untranspiled configs (@lukastaegert)
2941- [#3468](https://github.com/rollup/rollup/pull/3468): Don't use esm output format alias in the documentation (@vsn4ik)
2942
2943## 2.2.0
2944
2945_2020-03-24_
2946
2947### Features
2948
2949- Add `renderDynamicImport` hook to rewrite dynamic import expressions (#3449)
2950- Add information about dynamically imported modules to `this.getModuleInfo` (#3449)
2951
2952### Bug Fixes
2953
2954- Make file emission work with Uin8Array sources when using Rollup in the browser (#3452)
2955- Fix types to allow watch to accept an array of configs (#3453)
2956- Do not strip `.js` extensions from AMD imports when the import is a user-supplied replacement for a non-resolvable dynamic import target (#3453)
2957
2958### Pull Requests
2959
2960- [#3449](https://github.com/rollup/rollup/pull/3449): Add hook to rewrite dynamic import expressions (@lukastaegert)
2961- [#3452](https://github.com/rollup/rollup/pull/3452): Avoid the assumption of Buffer in browser envs (@JoviDeCroock)
2962- [#3453](https://github.com/rollup/rollup/pull/3453): fix types since watch accepts single or array config (@lukeed)
2963- [#3456](https://github.com/rollup/rollup/pull/3456): fix SystemJS url in tutorial (@guybedford)
2964
2965## 2.1.0
2966
2967_2020-03-18_
2968
2969### Features
2970
2971- Allow specifying an importer when emitting files to resolve relative ids (#3442)
2972
2973### Pull Requests
2974
2975- [#3442](https://github.com/rollup/rollup/pull/3442): Add optional `importer` parameter to `this.emitFile` (@lukastaegert)
2976
2977## 2.0.6
2978
2979_2020-03-13_
2980
2981### Bug Fixes
2982
2983- Do not use file names from different outputs when generating sourcemaps using the `dir` option (#3440)
2984
2985### Pull Requests
2986
2987- [#3440](https://github.com/rollup/rollup/pull/3440): Use correct file names when writing sourcemaps for multiple outputs (@lukastaegert)
2988
2989## 2.0.5
2990
2991_2020-03-12_
2992
2993### Bug Fixes
2994
2995- Fix an issue where conditional statements would assume they have the wrong test value (#3438)
2996
2997### Pull Requests
2998
2999- [#3438](https://github.com/rollup/rollup/pull/3438): Make sure logical expressions always check the left argument for side-effects (@lukastaegert)
3000
3001## 2.0.4
3002
3003_2020-03-12_
3004
3005### Bug Fixes
3006
3007- Avoid conflicts between namespace imports when preserving modules (#3435)
3008
3009### Pull Requests
3010
3011- [#3435](https://github.com/rollup/rollup/pull/3435): Deconflict multiple `index` imports for ES format using nested export star statements (@kamranayub)
3012
3013## 2.0.3
3014
3015_2020-03-10_
3016
3017### Bug Fixes
3018
3019- Add type for this.getCombinedSourcemap to transform context (#3431)
3020
3021### Pull Requests
3022
3023- [#3377](https://github.com/rollup/rollup/pull/3377): Switch to yargs-parser lib (@jamesgeorge007)
3024- [#3426](https://github.com/rollup/rollup/pull/3426): Use strict types with PluginDriver (@NotWoods)
3025- [#3431](https://github.com/rollup/rollup/pull/3431): Add missing type declaration for getCombinedSourcemap (@Anidetrix)
3026- [#3432](https://github.com/rollup/rollup/pull/3432): Detail how return values from `augmentChunkHash` are used (@jakearchibald)
3027
3028## 2.0.2
3029
3030_2020-03-07_
3031
3032### Bug Fixes
3033
3034- Make sure the ESM import still works (#3430)
3035
3036### Pull Requests
3037
3038- [#3430](https://github.com/rollup/rollup/pull/3430): Fix conditional exports again (@lukastaegert)
3039
3040## 2.0.1
3041
3042_2020-03-07_
3043
3044### Bug Fixes
3045
3046- Reenable importing rollup in Node 13.0 - 13.7 (#3428)
3047
3048### Pull Requests
3049
3050- [#3428](https://github.com/rollup/rollup/pull/3428): Fix conditional exports in Node 13.0 - 13.7 (@lukastaegert)
3051
3052## 2.0.0
3053
3054_2020-03-06_
3055
3056### Breaking Changes
3057
3058- Rollup now requires at least Node 10 to run, or a sufficiently modern browser (#3346)
3059- The file structure of Rollup's ESM builds has changed:
3060
3061 - The main ESM entry point is now at `rollup/dist/es/rollup.js` instead of `rollup/dist/rollup.es.js`
3062 - The ESM browser build is at `rollup/dist/es/rollup.browser.js` instead of `rollup/dist/rollup.browser.es.js`
3063
3064 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)
3065
3066- 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)
3067- Modules that are completely tree-shaken will no longer be listed as part of any chunks in `generateBundle`
3068- The `experimentalOptimizeChunks` and `chunkGroupingSize` options have been removed
3069- [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)
3070- Emitted chunks now have the TypeScript type `Uint8Array` instead of `Buffer`. A `Buffer` can still be used, though (#3395)
3071- 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)
3072- 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)
3073- The following plugin hooks have been removed:
3074 - ongenerate: use `generateBundle` instead
3075 - onwrite: use `writeBundle` instead
3076 - transformBundle: use `renderChunk` instead
3077 - transformChunk: use `renderChunk` instead
3078- You can no longer access `this.watcher` on the plugin context.
3079- The `transform` hook can no longer return `dependencies`.
3080- The `treeshake.pureExternalModules` option will now show a deprecation warning when used: use `treeshake.moduleSideEffects: 'no-external'` instead
3081- 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
3082- The `resolveAssetUrl` hook will now show a deprecation warning when used: use `resolveFileUrl` instead
3083- The following plugin context functions will show warnings when used:
3084 - `this.emitAsset`: use `this.emitFile`
3085 - `this.emitChunk`: use `this.emitFile`
3086 - `this.getAssetFileName`: use `this.getFileName`
3087 - `this.getChunkFileName`: use `this.getFileName`
3088 - `this.isExternal`: use `this.resolve`
3089 - `this.resolveId`: use `this.resolve`
3090- Directly adding properties to the bundle object in the `generateBundle` is deprecated will show a warning (removing properties is allowed, though): Use `this.emitFile`
3091- Accessing `chunk.isAsset` on the bundle is deprecated: Use `chunk.type === 'asset'` instead
3092- 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)
3093
3094### Features
3095
3096- Rollup now bundles [Chokidar](https://github.com/paulmillr/chokidar) for a better watch experience (#3331)
3097- Rollup now bundles [acorn](https://github.com/acornjs/acorn) again, removing its only external dependency (#3391)
3098- Do not consider empty imports from side-effect-free modules for chunking and hoist side-effect imports if necessary (#3369)
3099- 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)
3100- `systemjs` can be used as format alias for `system` (#3381)
3101
3102### Bug Fixes
3103
3104- Unknown output options now trigger a warning when using the JavaScript API (#3352)
3105- Rollup will no longer introduce Node types into TypeScript projects that do not use them (#3395)
3106- Generate correct sourcemaps when tree-shaking occurs in a multi-file bundle (#3423)
3107
3108### Pull Requests
3109
3110- [#3331](https://github.com/rollup/rollup/pull/3331): Bundle Chokidar (@lukastaegert)
3111- [#3343](https://github.com/rollup/rollup/pull/3343): Remove experimentalOptimizeChunks (@lukastaegert)
3112- [#3346](https://github.com/rollup/rollup/pull/3346): Update minimum required Node version to 10 (@lukastaegert)
3113- [#3352](https://github.com/rollup/rollup/pull/3352): Remove active deprecations (@lukastaegert)
3114- [#3361](https://github.com/rollup/rollup/pull/3361): Change writeBundle signature to match generateBundle (@lukastaegert)
3115- [#3369](https://github.com/rollup/rollup/pull/3369): Avoid empty imports from side-effect-free chunks (@lukastaegert)
3116- [#3381](https://github.com/rollup/rollup/pull/3381): Rename esm to es everywhere, add systemjs alias (@lukastaegert)
3117- [#3391](https://github.com/rollup/rollup/pull/3391): Bundle acorn, allow importing Rollup as Node ES module, update dependencies (@lukastaegert)
3118- [#3393](https://github.com/rollup/rollup/pull/3393): Better error code for name-less umd bundle (@rail44)
3119- [#3395](https://github.com/rollup/rollup/pull/3395): Remove `@types` dependencies (@lukastaegert)
3120- [#3423](https://github.com/rollup/rollup/pull/3423): Update magic-string and fix sourcemaps (@lukastaegert)
3121
3122## 1.32.1
3123
3124_2020-03-06_
3125
3126### Bug Fixes
3127
3128- Handle default export detection for AMD and IIFE externals that do not have a prototype (#3420)
3129- Handle missing whitespace when the else branch of an if-statement is simplified (#3421)
3130- Mention the importing module when reporting errors for missing named exports (#3401)
3131- Add code to warning for missing output.name of IIFE bundles (#3372)
3132
3133### Pull Requests
3134
3135- [#3372](https://github.com/rollup/rollup/pull/3372): Add warning code for missing output.name of IIFE bundle that has export (@rail44)
3136- [#3401](https://github.com/rollup/rollup/pull/3401): Missing exports errors now print the importing module (@timiyay)
3137- [#3418](https://github.com/rollup/rollup/pull/3418): Structure lifecycle hooks, add links to build time hooks (@lukastaegert)
3138- [#3420](https://github.com/rollup/rollup/pull/3420): Update generated code of getInteropBlock() to work with null prototype objects (@jdalton)
3139- [#3421](https://github.com/rollup/rollup/pull/3421): Avoid invalid code when "else" branch is simplified (@lukastaegert)
3140
3141## 1.32.0
3142
3143_2020-02-28_
3144
3145### Features
3146
3147- Allow adding plugins on the command line via `--plugin <plugin>` (#3379)
3148
3149### Pull Requests
3150
3151- [#3379](https://github.com/rollup/rollup/pull/3379): introduce CLI --plugin support (@kzc)
3152- [#3390](https://github.com/rollup/rollup/pull/3390): fix typo: this.addWatchfile (@mistlog)
3153- [#3392](https://github.com/rollup/rollup/pull/3392): Bump codecov from 3.6.1 to 3.6.5
3154- [#3404](https://github.com/rollup/rollup/pull/3404): Update resolveFileUrl docs (@jakearchibald)
3155
3156## 1.31.1
3157
3158_2020-02-14_
3159
3160### Bug Fixes
3161
3162- Make sure errored files are always re-evaluated in watch mode to avoid an issue in the typescript plugin (#3388)
3163
3164### Pull Requests
3165
3166- [#3366](https://github.com/rollup/rollup/pull/3366): Correct spelling minifaction to minification (@VictorHom)
3167- [#3371](https://github.com/rollup/rollup/pull/3371): Adjust bug template to mention REPL.it (@lukastaegert)
3168- [#3388](https://github.com/rollup/rollup/pull/3388): Run transform hooks again in watch mode on files that errored (@lukastaegert)
3169
3170## 1.31.0
3171
3172_2020-01-31_
3173
3174### Features
3175
3176- Always disable tree-shaking for asm.js functions to maintain semantics (#3362)
3177
3178### Pull Requests
3179
3180- [#3362](https://github.com/rollup/rollup/pull/3362): Preserve asm.js code (@lukastaegert)
3181
3182## 1.30.1
3183
3184_2020-01-27_
3185
3186### Bug Fixes
3187
3188- Do not mistreat static entgry points as dynamic ones when chunking (#3357)
3189- Resolve a crash when chunking circular dynamic imports (#3357)
3190
3191### Pull Requests
3192
3193- [#3357](https://github.com/rollup/rollup/pull/3357): Resolve issues with circular dynamic entries (@lukastaegert)
3194
3195## 1.30.0
3196
3197_2020-01-27_
3198
3199### Features
3200
3201- Do not split chunks when dynamically imported modules import modules that are already loaded by all dynamic importers (#3354)
3202- Add `hoistTransitiveImports` option to disable hoisting imports of static dependencies into entry chunks (#3353)
3203
3204### Bug Fixes
3205
3206- Make sure polyfills are always loaded first when each static entry point contains them as first import (#3354)
3207
3208### Pull Requests
3209
3210- [#3353](https://github.com/rollup/rollup/pull/3353): Add option to avoid hoisting transitive imports (@lukastaegert)
3211- [#3354](https://github.com/rollup/rollup/pull/3354): Improve chunking algorithm for dynamic imports (@tjenkinson and @lukastaegert)
3212
3213## 1.29.1
3214
3215_2020-01-21_
3216
3217### Bug Fixes
3218
3219- Avoid crashes for circular reexports when named exports cannot be found (#3350)
3220
3221### Pull Requests
3222
3223- [#3335](https://github.com/rollup/rollup/pull/3335): Fix typo (@robbinworks)
3224- [#3342](https://github.com/rollup/rollup/pull/3342): Remove ":" from test file names for Windows and update dependencies (@lukastaegert)
3225- [#3350](https://github.com/rollup/rollup/pull/3350): Properly handle circular reexports (@lukastaegert)
3226
3227## 1.29.0
3228
3229_2020-01-08_
3230
3231### Features
3232
3233- Enable top-level await by default (#3089)
3234- Add typings for watch events (#3302)
3235
3236### Bug Fixes
3237
3238- Deconflict files that would conflict only on a case-insensitive OS (#3317)
3239- Do not fail in certain scenarios where a logical expression inside a sequence expression was being directly included (#3327)
3240
3241### Pull Requests
3242
3243- [#3089](https://github.com/rollup/rollup/pull/3089): Move top-level await out of experimental (@guybedford)
3244- [#3302](https://github.com/rollup/rollup/pull/3302): Adds type definitions for RollupWatcher events (@NotWoods)
3245- [#3317](https://github.com/rollup/rollup/pull/3317): Fix module id conflict on a case insensitive OS (@yesmeck)
3246- [#3327](https://github.com/rollup/rollup/pull/3327): Handle deoptimizations while a node is being included (@lukastaegert)
3247
3248## 1.28.0
3249
3250_2020-01-04_
3251
3252### Features
3253
3254- Allow piping in stdin via the command line interface (#3312, #3290)
3255- Allow plugins to mark modules as having syntheticNamedExports for e.g. better CJS interoperability (#3295)
3256- Ignore variable reassignments in dead code when tree-shaking to remove more unneeded code (#3212)
3257
3258### Bug Fixes
3259
3260- Properly respect tree-shaken code when generating sourcemaps (#3318)
3261
3262### Pull Requests
3263
3264- [#3212](https://github.com/rollup/rollup/pull/3212): Handle assignments in dead code (@tjenkinson)
3265- [#3290](https://github.com/rollup/rollup/pull/3290): Implement stdin input with optional "-" as the file name (@kzc)
3266- [#3295](https://github.com/rollup/rollup/pull/3295): Add syntheticNamedExports (@manucorporat)
3267- [#3300](https://github.com/rollup/rollup/pull/3300): Add note about setting `types` in tsconfig file (@tjenkinson)
3268- [#3303](https://github.com/rollup/rollup/pull/3303): Use ! to assert not-null in TypeScript (@NotWoods)
3269- [#3312](https://github.com/rollup/rollup/pull/3312): Implement stdin input (@lukastaegert)
3270- [#3318](https://github.com/rollup/rollup/pull/3318): Update magic-string and other dependencies (@lukastaegert)
3271
3272## 1.27.14
3273
3274_2019-12-22_
3275
3276### Bug Fixes
3277
3278- Update references to official rollup plugins in error messages (#3297, #3298)
3279
3280### Pull Requests
3281
3282- [#3286](https://github.com/rollup/rollup/pull/3286): Update link to JavaScript API documentation (@romankaravia)
3283- [#3294](https://github.com/rollup/rollup/pull/3294): Update deprecated references to the node-resolve plugin in the documentation (@Vlad-Shcherbina)
3284- [#3297](https://github.com/rollup/rollup/pull/3297): Update references to rollup-plugin-json (@cprecioso)
3285- [#3298](https://github.com/rollup/rollup/pull/3298): Update references to official rollup plugins (@cprecioso)
3286
3287## 1.27.13
3288
3289_2019-12-14_
3290
3291### Bug Fixes
3292
3293- Do not truncate environment variable values at the first colon when using the `--environment` option (#3283)
3294
3295### Pull Requests
3296
3297- [#3283](https://github.com/rollup/rollup/pull/3283): Allow environment variables to contain colons (@tlaverdure)
3298
3299## 1.27.12
3300
3301_2019-12-13_
3302
3303### Bug Fixes
3304
3305- Prevent invalid AMD or SystemJS code when accessing `import.meta` (#3282)
3306
3307### Pull Requests
3308
3309- [#3282](https://github.com/rollup/rollup/pull/3282): Always make "module" available for SystemJS and AMD formats if `import.meta` is accessed directly (@lukastaegert)
3310
3311## 1.27.11
3312
3313_2019-12-12_
3314
3315### Bug Fixes
3316
3317- Resolve a crash due to an infinite loop (#3280)
3318
3319### Pull Requests
3320
3321- [#3280](https://github.com/rollup/rollup/pull/3280): Prevent infinite deoptimizations (@lukastaegert)
3322
3323## 1.27.10
3324
3325_2019-12-11_
3326
3327### Bug Fixes
3328
3329- Keep track of function return values in more situations (#3278)
3330
3331### Pull Requests
3332
3333- [#3278](https://github.com/rollup/rollup/pull/3278): Avoid some unnecessary value tracking deoptimizations (@lukastaegert)
3334
3335## 1.27.9
3336
3337_2019-12-07_
3338
3339### Bug Fixes
3340
3341- Fix an issue where reexports could be missing when preserving modules (#3273)
3342- Allow turning of color output via NO_COLOR or FORCE_COLOR=0 environment variables (#3272)
3343
3344### Pull Requests
3345
3346- [#3272](https://github.com/rollup/rollup/pull/3272): Support either NO_COLOR or FORCE_COLOR=0 to turn off color (@kikonen)
3347- [#3273](https://github.com/rollup/rollup/pull/3273): Make sure that indirectly reexported modules also become chunk dependencies when preserving modules(@lukastaegert)
3348
3349## 1.27.8
3350
3351_2019-12-02_
3352
3353### Bug Fixes
3354
3355- Deoptimize objects when a method is called on them to make sure modifications via "this" are observed (#3266)
3356
3357### Pull Requests
3358
3359- [#3266](https://github.com/rollup/rollup/pull/3266): Workaround for various object literal mutation bugs (@kzc)
3360
3361## 1.27.7
3362
3363_2019-12-01_
3364
3365### Bug Fixes
3366
3367- Fix a scenario where a reassignments to computed properties were not tracked (#3267)
3368
3369### Pull Requests
3370
3371- [#3267](https://github.com/rollup/rollup/pull/3267): Fix incomplete computed property deoptimization (@lukastaegert)
3372
3373## 1.27.6
3374
3375_2019-11-30_
3376
3377### Bug Fixes
3378
3379- Use "auto" export mode by default for all modules when preserving modules (#3265)
3380- Observe "output.exports" when preserving modules and warn for mixed exports if necessary (#3265)
3381
3382### Pull Requests
3383
3384- [#3265](https://github.com/rollup/rollup/pull/3265): Use export mode "auto" by default when preserving modules (@lukastaegert)
3385
3386## 1.27.5
3387
3388_2019-11-25_
3389
3390### Bug Fixes
3391
3392- Make sure namespaces for inlined dynamic imports are treated as variable accesses when deconflicting (#3256)
3393
3394### Pull Requests
3395
3396- [#3256](https://github.com/rollup/rollup/pull/3256): Avoid name conflicts when inlining dynamic imports nested in functions (@lukastaegert)
3397- [#3257](https://github.com/rollup/rollup/pull/3257): Update dependencies (@lukastaegert)
3398
3399## 1.27.4
3400
3401_2019-11-22_
3402
3403### Bug Fixes
3404
3405- Aggregate circular dependency warnings in the CLI (#3249)
3406- Do not defer non-aggregated handlers in the CLI (#3249)
3407
3408### Pull Requests
3409
3410- [#3249](https://github.com/rollup/rollup/pull/3249): Fix broken Windows CLI tests (@lukastaegert)
3411- [#3251](https://github.com/rollup/rollup/pull/3251): Add installation as a separate header (@ashrith-kulai)
3412
3413## 1.27.3
3414
3415_2019-11-20_
3416
3417### Bug Fixes
3418
3419- Provide better warning when empty chunks are created in a code-splitting scenario (#3244)
3420
3421### Pull Requests
3422
3423- [#3244](https://github.com/rollup/rollup/pull/3244): Clearer empty chunk warning (@tjenkinson)
3424
3425## 1.27.2
3426
3427_2019-11-18_
3428
3429### Bug Fixes
3430
3431- Fix an issue where live bindings were not working correctly when using `+=` in SystemJS (#3242)
3432
3433### Pull Requests
3434
3435- [#3242](https://github.com/rollup/rollup/pull/3242): Export updated assignments when using shorthand update assignment expressions in SystemJS (@lukastaegert)
3436
3437## 1.27.1
3438
3439_2019-11-18_
3440
3441### Bug Fixes
3442
3443- Fix an issue where code after a switch-statement with removed cases was erroneously not included (#3241)
3444
3445### Pull Requests
3446
3447- [#3237](https://github.com/rollup/rollup/pull/3237): make `acornOptions` optional in `parse()` in docs (@tjenkinson)
3448- [#3240](https://github.com/rollup/rollup/pull/3240): Update dependencies and fix vulnerability (@lukastaegert)
3449- [#3241](https://github.com/rollup/rollup/pull/3241): Do not truncate after switch-statement with removed case (@lukastaegert)
3450
3451## 1.27.0
3452
3453_2019-11-12_
3454
3455### Features
3456
3457- Add support for output-specific plugins (#3218)
3458- Reenable parallel output processing when using the CLI (#3218)
3459- Warn if files are emitted that would overwrite previously emitted files (#3218)
3460
3461### Bug Fixes
3462
3463- Do not overwrite files emitted in other builds if outputs are generated in parallel (#3218)
3464
3465### Pull Requests
3466
3467- [#3218](https://github.com/rollup/rollup/pull/3218): Per output plugins (@lukastaegert)
3468
3469## 1.26.5
3470
3471_2019-11-11_
3472
3473### Bug Fixes
3474
3475- Fix a regression where it was no longer to pass a certain option format to generate (#3223)
3476
3477### Pull Requests
3478
3479- [#3223](https://github.com/rollup/rollup/pull/3223): Allow passing input options to output (@lukastaegert)
3480
3481## 1.26.4
3482
3483_2019-11-09_
3484
3485### Bug Fixes
3486
3487- Keep watching known files after a plugin error during the initial build (#3219)
3488
3489### Pull Requests
3490
3491- [#3216](https://github.com/rollup/rollup/pull/3216): Fix small typo (@kaisermann)
3492- [#3217](https://github.com/rollup/rollup/pull/3217): Update dependencies and fix security vulnerability (@lukastaegert)
3493- [#3219](https://github.com/rollup/rollup/pull/3219): Also recover from plugin errors during the initial build (@lukastaegert)
3494
3495## 1.26.3
3496
3497_2019-11-02_
3498
3499### Bug Fixes
3500
3501- Work around an incompatibility with rollup-plugin-dts (#3211)
3502
3503### Pull Requests
3504
3505- [#3211](https://github.com/rollup/rollup/pull/3211): Do no fail if the source attribute is `undefined` in an unused named export (@lukastaegert)
3506
3507## 1.26.2
3508
3509_2019-10-31_
3510
3511### Bug Fixes
3512
3513- Do not create invalid code when using `treeshake: false` and star re-exports (#3209)
3514
3515### Pull Requests
3516
3517- [#3209](https://github.com/rollup/rollup/pull/3209): Also remove export-all declarations when not tree-shaking (@lukastaegert)
3518
3519## 1.26.1
3520
3521_2019-10-31_
3522
3523### Bug Fixes
3524
3525- Prevent an issue where outputs would overwrite files emitted by other outputs (#3201)
3526- Do not throw an error if the config file does not have a .js extension (#3204)
3527
3528### Pull Requests
3529
3530- [#3201](https://github.com/rollup/rollup/pull/3201): Make the CLI run generate/output in serial (@marijnh)
3531- [#3204](https://github.com/rollup/rollup/pull/3204): support all config file extensions (.js,.mjs,...) (@arlac77)
3532
3533## 1.26.0
3534
3535_2019-10-27_
3536
3537### Features
3538
3539- Only warn when no output is provided for an IIFE bundle but still produce valid code (#3181)
3540- Support reexporting namespaces as a binding (#3193)
3541- Switch from hash.js to crypto for hashing in the Node build for better performance and support for very large assets (#3194)
3542
3543### Bug Fixes
3544
3545- Correctly handle chunks reexporting the same namespace as two different bindings (#3193)
3546
3547### Pull Requests
3548
3549- [#3181](https://github.com/rollup/rollup/pull/3181): Remove the need to provide an output name for IIFE bundles (@bterrier)
3550- [#3193](https://github.com/rollup/rollup/pull/3193): Add support for "export \* as name from …" (@lukastaegert)
3551- [#3194](https://github.com/rollup/rollup/pull/3194): Add support for large assets (> 100 MB) (@SebastianNiemann)
3552
3553## 1.25.2
3554
3555_2019-10-23_
3556
3557### Bug Fixes
3558
3559- Improve performance of bundled UMD code by adding additional parentheses to enforce eager parsing (#3183)
3560- Improve types to tolerate passing a Rollup config with multiple outputs to `rollup.rollup` (#3184)
3561
3562### Pull Requests
3563
3564- [#3183](https://github.com/rollup/rollup/pull/3183): Add parentheses to factory function of UMD bundles (@ajihyf)
3565- [#3184](https://github.com/rollup/rollup/pull/3184): RollupOptions accept output as array (@imcotton)
3566
3567## 1.25.1
3568
3569_2019-10-20_
3570
3571### Bug Fixes
3572
3573- Handle a situation where code was not included after a switch statement (#3178)
3574- Handle a situation where code was not included after a do-while loop (#3180)
3575- Do not fail if different outputs emit the same file (#3175)
3576- Give access to the original acorn error for parse errors (#3176)
3577
3578### Pull Requests
3579
3580- [#3175](https://github.com/rollup/rollup/pull/3175): Disable errors for duplicate emitted file names (@marijnh)
3581- [#3176](https://github.com/rollup/rollup/pull/3176): Add original parser error to rollup error; Update tests (@gribnoysup)
3582- [#3178](https://github.com/rollup/rollup/pull/3178): Fix switch case not being included correctly (@lukastaegert)
3583- [#3179](https://github.com/rollup/rollup/pull/3179): Update dependencies (@lukastaegert)
3584- [#3180](https://github.com/rollup/rollup/pull/3180): Handle conditional breaks in do-while loops with unconditional return (@lukastaegert)
3585
3586## 1.25.0
3587
3588_2019-10-18_
3589
3590### Features
3591
3592- Remove try-catch if there is no side-effect in the try-block (#3166)
3593- Omit side-effect-free trailing cases in switch-statements (#3166)
3594- Remove unused labels (#3170)
3595
3596### Bug Fixes
3597
3598- Do not remove code after labeled statements that contain a throw or return if the label is used (#3170)
3599- Prevent invalid code when expressions are simplified that do not follow a white-space character (#3173)
3600- Do not remove continue statements inside switch statements (#3166)
3601- Prevent trailing empty lines when tree-shaking inside switch statements (#3166)
3602
3603### Pull Requests
3604
3605- [#3166](https://github.com/rollup/rollup/pull/3166): Better try statement tree shaking (@lukastaegert)
3606- [#3170](https://github.com/rollup/rollup/pull/3170): Handle optional control flow in labeled statements, remove unused labels (@lukastaegert)
3607- [#3173](https://github.com/rollup/rollup/pull/3173): Add missing spaces in certain statements and expressions to avoid invalid code (@lukastaegert)
3608
3609## 1.24.0
3610
3611_2019-10-15_
3612
3613### Features
3614
3615- Respect `break`, `continue`, `return` and `throw` when tree-shaking to detect dead code (#3153)
3616- Do treat treat hoisted function declarations as "unknown" when checking for call side-effects (#3153)
3617
3618### Bug Fixes
3619
3620- Make sure that unknown `import.meta` properties produce valid code in SystemJS (#3152)
3621- Make sure `treeshake.annotations: false` is respected for class instantiation (#3153)
3622- Check property access side-effects for class instantiation (#3153)
3623- Do not suppress break statements inside labeled statements (#3153)
3624
3625### Pull Requests
3626
3627- [#3152](https://github.com/rollup/rollup/pull/3152): Allow import.meta.\* for systemjs format (@dmail)
3628- [#3153](https://github.com/rollup/rollup/pull/3153): Get rid of immutable.js and implement tree-shaking for broken control flow (@lukastaegert)
3629
3630## 1.23.1
3631
3632_2019-10-05_
3633
3634### Bug Fixes
3635
3636- Fix a regression where the node types had a specific minimal version (#3143)
3637
3638### Pull Requests
3639
3640- [#3143](https://github.com/rollup/rollup/pull/3143): Ensure that types packages have star version ranges (@lukastaegert)
3641
3642## 1.23.0
3643
3644_2019-10-03_
3645
3646### Features
3647
3648- Add placeholders for extensions when preserving modules (#3116)
3649
3650### Pull Requests
3651
3652- [#3116](https://github.com/rollup/rollup/pull/3116): Include extensions in preserveModules output filenames for scriptified assets (@Andarist)
3653- [#3142](https://github.com/rollup/rollup/pull/3142): Fix typo (@tu4mo)
3654
3655## 1.22.0
3656
3657_2019-09-29_
3658
3659### Features
3660
3661- Add a new "hidden" sourcemap type that generates the map files but omits the sourcemap comment (#3120)
3662- Generate more efficient code when using `namespaceToStringTag: true` (#3135)
3663- Make sure namespace objects do not have a prototype (#3136)
3664
3665### Bug Fixes
3666
3667- Do not ignore side-effectful iterators by always preserving for..of loops for now (#3132)
3668- Make sure `--context` is observed as a CLI option (#3134)
3669- Do not require specific versions for @types dependencies (#3131)
3670
3671### Pull Requests
3672
3673- [#3120](https://github.com/rollup/rollup/pull/3120): Generate sourcemaps but omit the comment (@rohitmohan96)
3674- [#3131](https://github.com/rollup/rollup/pull/3131): Use asterisk for @types/\* dependencies (@frenzzy)
3675- [#3132](https://github.com/rollup/rollup/pull/3132): Preserve empty for...of loops (@imatlopez)
3676- [#3133](https://github.com/rollup/rollup/pull/3133): Update dependencies (@lukastaegert)
3677- [#3134](https://github.com/rollup/rollup/pull/3134): Wire up --context CLI flag (@tchetwin)
3678- [#3135](https://github.com/rollup/rollup/pull/3135): Remove Symbol polyfill in module namespaces (@mkubilayk)
3679- [#3136](https://github.com/rollup/rollup/pull/3136): Set null prototype on namespace objects (@rpamely)
3680
3681## 1.21.4
3682
3683_2019-09-16_
3684
3685### Bug Fixes
3686
3687- Recognize common browser globals (#3117)
3688- Do not treat "typeof <global>" as a side-effect (#3117)
3689
3690### Pull Requests
3691
3692- [#3117](https://github.com/rollup/rollup/pull/3117): Add browser globals to known globals and prevent "typeof" side-effects (@lukastaegert)
3693
3694## 1.21.3
3695
3696_2019-09-14_
3697
3698### Bug Fixes
3699
3700- Fix a regression where modifying a watched file did not trigger a rebuild (#3112)
3701
3702### Pull Requests
3703
3704- [#3112](https://github.com/rollup/rollup/pull/3112): Fix .addWatchFile() dependencies failing to invalidate in watch mode (@tivac)
3705
3706## 1.21.2
3707
3708_2019-09-09_
3709
3710### Bug Fixes
3711
3712- Fix wrong deprecation message to direct to `this.emitFile` instead of `this.emitAsset`
3713
3714## 1.21.1
3715
3716_2019-09-09_
3717
3718### Bug Fixes
3719
3720- Allow legacy plugins to still add assets directly to the bundle object (#3105)
3721
3722### Pull Requests
3723
3724- [#3105](https://github.com/rollup/rollup/pull/3105): Allow legacy plugins to still add assets directly to the bundle object (@lukastaegert)
3725
3726## 1.21.0
3727
3728_2019-09-08_
3729
3730### Features
3731
3732- Respect `output.entryFileNames` when preserving modules (#3088)
3733- Make accessing unknown globals a side-effect unless this is deactivated via `treeshake.unknownGlobalSideEffects` (#3068)
3734- Respect global objects when checking for pure global functions (#3068)
3735- Introduce a `type` to more easily distinguish chunks and assets in the output bundle (#3080)
3736
3737### Bug Fixes
3738
3739- Recover in watch mode when the initial build fails (#3081)
3740- Make sure `output.strict` is respected for SystemJS output (#3101)
3741
3742### Pull Requests
3743
3744- [#3068](https://github.com/rollup/rollup/pull/3068): Make accessing unknown globals a side-effect (@lukastaegert)
3745- [#3080](https://github.com/rollup/rollup/pull/3080): OutputBundle Tagged union with 'type = chunk|asset' (@askbeka)
3746- [#3081](https://github.com/rollup/rollup/pull/3081): Watch files onbuild, even if build fails (@mhkeller)
3747- [#3088](https://github.com/rollup/rollup/pull/3088): Add support for entryFileNames pattern used in combination with preserveModules option (@Andarist)
3748- [#3101](https://github.com/rollup/rollup/pull/3101): Remove 'use strict'; from systemjs when strict=false (@askbeka)
3749
3750## 1.20.3
3751
3752_2019-08-28_
3753
3754### Bug Fixes
3755
3756- Make sure file hashes change when a change of the naming pattern leads to a file name change of a dependency (#3083)
3757- Fix several issues where reexporting an external "default" export could lead to invalid or incorrect code (#3084)
3758
3759### Pull Requests
3760
3761- [#3078](https://github.com/rollup/rollup/pull/3078): Add github actions workflow config for windows (@shellscape)
3762- [#3083](https://github.com/rollup/rollup/pull/3083): Properly reflect dependency file names in hash (@lukastaegert)
3763- [#3084](https://github.com/rollup/rollup/pull/3084): Fix "default" reexport issues in non ESM/System formats (@lukastaegert)
3764
3765## 1.20.2
3766
3767_2019-08-25_
3768
3769### Bug Fixes
3770
3771- Avoid an issue where circular namespace reexports would crash Rollup (#3074)
3772
3773### Pull Requests
3774
3775- [#3077](https://github.com/rollup/rollup/pull/3077): Handle namespaces that reexport themselves (@lukastaegert)
3776
3777## 1.20.1
3778
3779_2019-08-22_
3780
3781### Bug Fixes
3782
3783- Fix an issue where variable names inside dynamic import expressions were not rendered correctly (#3073)
3784- Fix type definition to allow a single watcher config as well as an array (#3074)
3785
3786### Pull Requests
3787
3788- [#3073](https://github.com/rollup/rollup/pull/3073): Fix wrong variable name in import expression (@lukastaegert)
3789- [#3074](https://github.com/rollup/rollup/pull/3074): Fixes type definition on watch and Watcher constructor (@MicahZoltu)
3790
3791## 1.20.0
3792
3793_2019-08-21_
3794
3795### Features
3796
3797- Add augmentChunkHash plugin hook to be able to reflect changes in renderChunk in the chunk hash (#2921)
3798
3799### Bug Fixes
3800
3801- Do not mutate the acorn options object (#3051)
3802- Make sure the order of emitted chunks always reflects the order in which they were emitted (#3055)
3803- Do not hang when there are strings containing comment-like syntax in some scenarios (#3069)
3804
3805### Pull Requests
3806
3807- [#2921](https://github.com/rollup/rollup/pull/2921): Add augmentChunkHash plugin hook (@isidrok)
3808- [#2995](https://github.com/rollup/rollup/pull/2995): Add info on installing locally to docs (@mesqueeb)
3809- [#3037](https://github.com/rollup/rollup/pull/3037): Refresh pull request labels (@shellscape)
3810- [#3048](https://github.com/rollup/rollup/pull/3048): Document ROLLUP_WATCH environment variable (@shellscape)
3811- [#3051](https://github.com/rollup/rollup/pull/3051): Avoid changes to the original options (.acorn) object (@LongTengDao)
3812- [#3052](https://github.com/rollup/rollup/pull/3052): Minor refactoring: Remove one try-catch (@KSXGitHub)
3813- [#3053](https://github.com/rollup/rollup/pull/3053): Refactor to use async-await in more places (@KSXGitHub)
3814- [#3055](https://github.com/rollup/rollup/pull/3055): Provide consistent chunking via a consistent order of entry modules when emitting chunks (@lukastaegert)
3815- [#3058](https://github.com/rollup/rollup/pull/3058): Remove acorn-bigint and acorn-dynamic-import from bundle (@LongTengDao)
3816- [#3061](https://github.com/rollup/rollup/pull/3061): Update to acorn@7 (@lukastaegert)
3817- [#3063](https://github.com/rollup/rollup/pull/3063): Auto-generate license file (@lukastaegert)
3818- [#3069](https://github.com/rollup/rollup/pull/3069): Prevent infinite loop when scanning for line-breaks and there are comment-like strings (@lukastaegert)
3819
3820## 1.19.4
3821
3822_2019-08-07_
3823
3824### Bug Fixes
3825
3826- Prevent invalid code when exporting an external namespace (#3034)
3827- Prevent invalid or non-equivalent code when simplifying expressions in return and throw statements (#3035)
3828
3829### Pull Requests
3830
3831- [#3034](https://github.com/rollup/rollup/pull/3034): Avoid generating .\* as export (@LongTengDao)
3832- [#3035](https://github.com/rollup/rollup/pull/3035): Prevent ASI errors for conditional expressions (@lukastaegert)
3833- [#3036](https://github.com/rollup/rollup/pull/3036): Fix documents to use https, not http (@giraffate)
3834
3835## 1.19.3
3836
3837_2019-08-06_
3838
3839### Bug Fixes
3840
3841- Fix wrong URLs in error messages (#3033)
3842
3843### Pull Requests
3844
3845- [#3033](https://github.com/rollup/rollup/pull/3033): Fix wrong URLs in error messages (@giraffate)
3846
3847## 1.19.2
3848
3849_2019-08-05_
3850
3851### Bug Fixes
3852
3853- Add bin file to package
3854
3855## 1.19.1
3856
3857_2019-08-05_
3858
3859### Bug Fixes
3860
3861- Remove wrong extension in package.json file (#3031)
3862
3863### Pull Requests
3864
3865- [#3031](https://github.com/rollup/rollup/pull/3031): Fix wrong extension (@lukastaegert)
3866
3867## 1.19.0
3868
3869_2019-08-05_
3870
3871### Features
3872
3873- Implement a new unified file emission API for assets and chunks with support for explicit file names (#2999)
3874- Use the id of the last module in a chunk as base for the chunk name if no better name is available (#3025)
3875- 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)
3876
3877### Bug Fixes
3878
3879- Do not produce invalid variable names if an empty name is chosen for a virtual module (#3026)
3880- Fix an issue where a module variable name would conflict with a local variable name in some formats (#3020)
3881
3882### Pull Requests
3883
3884- [#2999](https://github.com/rollup/rollup/pull/2999): Unified file emission api (@lukastaegert)
3885- [#3020](https://github.com/rollup/rollup/pull/3020): Switch to a code-splitting build and update dependencies (@lukastaegert)
3886- [#3025](https://github.com/rollup/rollup/pull/3025): Use id of last module in chunk as name base for auto-generated chunks (@lukastaegert)
3887- [#3026](https://github.com/rollup/rollup/pull/3026): Avoid variable from empty module name be empty (@LongTengDao)
3888
3889## 1.18.0
3890
3891_2019-08-01_
3892
3893### Features
3894
3895- Add `externalLiveBindings: false` option to optimize code when live bindings are not needed (#3010)
3896
3897### Pull Requests
3898
3899- [#2997](https://github.com/rollup/rollup/pull/2997): Integrate coverage into CI setup (@lukastaegert)
3900- [#2998](https://github.com/rollup/rollup/pull/2998): Update readme badges (@lukastaegert)
3901- [#3010](https://github.com/rollup/rollup/pull/3010): Add option to prevent code for external live bindings (@lukastaegert)
3902
3903## 1.17.0
3904
3905_2019-07-15_
3906
3907### Features
3908
3909- Allow plugins to access current combined sourcemap in transform hook for coverage instrumentation (#2993)
3910
3911### Pull Requests
3912
3913- [#2987](https://github.com/rollup/rollup/pull/2987): Fix code fences for link (@johanholmerin)
3914- [#2989](https://github.com/rollup/rollup/pull/2989): Bump lodash from 4.17.11 to 4.17.14 (@dependabot)
3915- [#2993](https://github.com/rollup/rollup/pull/2993): Add getCombinedSourceMap in transform plugin context (@billowz)
3916
3917## 1.16.7
3918
3919_2019-07-09_
3920
3921### Bug Fixes
3922
3923- Fix an issue where exported import.meta properties would lead to invalid code (#2986)
3924
3925### Pull Requests
3926
3927- [#2985](https://github.com/rollup/rollup/pull/2985): Improve sourcemap types (@jridgewell)
3928- [#2986](https://github.com/rollup/rollup/pull/2986): Only overwrite content when resolving import.meta properties (@lukastaegert)
3929
3930## 1.16.6
3931
3932_2019-07-04_
3933
3934### Bug Fixes
3935
3936- Do not pass undefined to resolveDynamicImport for unresolvable template literals (#2984)
3937
3938### Pull Requests
3939
3940- [#2984](https://github.com/rollup/rollup/pull/2984): Always forward AST nodes for unresolvable dynamic imports (@lukastaegert)
3941
3942## 1.16.5
3943
3944_2019-07-04_
3945
3946### Bug Fixes
3947
3948- onwarn should still be called when --silent is used (#2982)
3949- Properly clean up watchers for files that are deleted between builds (#2982)
3950
3951### Pull Requests
3952
3953- [#2981](https://github.com/rollup/rollup/pull/2981): Do not skip onwarn handler when --silent is used (@lukastaegert)
3954- [#2982](https://github.com/rollup/rollup/pull/2982): Make tests run on Node 12, fix watcher cleanup issue (@lukastaegert)
3955
3956## 1.16.4
3957
3958_2019-07-02_
3959
3960### Bug Fixes
3961
3962- Do not show a TypeScript error when providing a location as number to this.warn and this.error (#2974)
3963- Use the correct TypeScript type for Sourcemap.version (#2976)
3964
3965### Pull Requests
3966
3967- [#2965](https://github.com/rollup/rollup/pull/2965): Use async readFile in getRollupDefaultPlugin (@kaksmet)
3968- [#2974](https://github.com/rollup/rollup/pull/2974): Align TS types, docs and implementation for this.warn and this.error (@lukastaegert)
3969- [#2976](https://github.com/rollup/rollup/pull/2976): Fix sourcemap type and update dependencies (@lukastaegert)
3970
3971## 1.16.3
3972
3973_2019-06-29_
3974
3975### Bug Fixes
3976
3977- Prevent name conflicts with unused function parameters (#2972)
3978
3979### Pull Requests
3980
3981- [#2972](https://github.com/rollup/rollup/pull/2972): Deconflict unused parameters (@lukastaegert)
3982
3983## 1.16.2
3984
3985_2019-06-22_
3986
3987### Bug Fixes
3988
3989- Properly wrap dynamic imports in Promises that can be caught when generating CJS output (#2958)
3990
3991### Pull Requests
3992
3993- [#2958](https://github.com/rollup/rollup/pull/2958): Make sure errors from dynamic imports can be caught (@lukastaegert)
3994
3995## 1.16.1
3996
3997_2019-06-21_
3998
3999### Pull Requests
4000
4001- [#2956](https://github.com/rollup/rollup/pull/2956): Add missing CLI docs for strictDeprecations (@lukastaegert)
4002
4003## 1.16.0
4004
4005_2019-06-21_
4006
4007### Features
4008
4009- Add strictDeprecations option to throw when currently or upcoming deprecated features are used (#2945)
4010- Keep annotations and comments when simplifying logical and conditional expressions (#2955)
4011
4012### Bug Fixes
4013
4014- Generate proper namespace objects when dynamically importing external dependencies for AMD or CJS formats (#2954)
4015- Fix dynamically imported variables not being resolved correctly when importing from an entry chunk with only a default export (#2954)
4016- Do not reexport default when reexporting a namespace (#2954)
4017
4018### Pull Requests
4019
4020- [#2945](https://github.com/rollup/rollup/pull/2945): Add option to handle use of features marked for deprecation as errors (@lukastaegert)
4021- [#2954](https://github.com/rollup/rollup/pull/2954): Improve dynamic import interop (@lukastaegert)
4022- [#2955](https://github.com/rollup/rollup/pull/2955): Keep annotations and comments when simplifying logical and conditional expressions (@lukastaegert)
4023
4024## 1.15.6
4025
4026_2019-06-16_
4027
4028### Bug Fixes
4029
4030- No longer use an alternate screen in watch mode to allow scrolling (#2942)
4031- Prioritize non-external imports over external ones when resolving conflicting namespace re-exports (#2893)
4032
4033### Pull Requests
4034
4035- [#2893](https://github.com/rollup/rollup/pull/2893): Improve handling of conflicting namespace exports (@aleclarson)
4036- [#2942](https://github.com/rollup/rollup/pull/2942): Get rid of alternate screen and simplify screen clearing (@lukastaegert)
4037
4038## 1.15.5
4039
4040_2019-06-14_
4041
4042### Bug Fixes
4043
4044- Do not include any comments for completely tree-shaken files so that `renderedLength === 0` is a reliable check (#2940)
4045- Do not cause type errors when returning `null` from `resolveId` (#2941)
4046
4047### Pull Requests
4048
4049- [#2940](https://github.com/rollup/rollup/pull/2940): Completely omit files that do not have any included statements (@lukastaegert)
4050- [#2941](https://github.com/rollup/rollup/pull/2941): Explicitly allow null as return value for various hooks (@lukastaegert)
4051
4052## 1.15.4
4053
4054_2019-06-14_
4055
4056### Bug Fixes
4057
4058- Improve how asset and chunk URLs are resolved for UMD, IIFE and CJS output (#2937)
4059
4060### Pull Requests
4061
4062- [#2937](https://github.com/rollup/rollup/pull/2937): Fix URL resolution to work when the current script contains query parameters (@lukastaegert)
4063
4064## 1.15.3
4065
4066_2019-06-13_
4067
4068### Bug Fixes
4069
4070- Always reemit assets and chunks from cached transform hooks (#2936)
4071
4072### Pull Requests
4073
4074- [#2936](https://github.com/rollup/rollup/pull/2936): Fix repeated re-emission of files emitted from a transform hook (@lukastaegert)
4075
4076## 1.15.2
4077
4078_2019-06-13_
4079
4080### Bug Fixes
4081
4082- Make sure chunks emitted from transform hooks are also emitted for incremental builds in watch mode (#2933)
4083
4084### Pull Requests
4085
4086- [#2933](https://github.com/rollup/rollup/pull/2933): Reemit chunks emitted from transform hooks (@lukastaegert)
4087
4088## 1.15.1
4089
4090_2019-06-11_
4091
4092### Bug Fixes
4093
4094- Do not fail when reexporting variables in dynamic entry points from other chunks (#2928)
4095
4096### Pull Requests
4097
4098- [#2928](https://github.com/rollup/rollup/pull/2928): Handle reexports from dynamic entries across chunk (@lukastaegert)
4099
4100## 1.15.0
4101
4102_2019-06-11_
4103
4104### Features
4105
4106- Tone down try-catch deoptimization while maintaining polyfill support (#2918)
4107
4108### Bug Fixes
4109
4110- Handle feature detection with "typeof" for regular expressios (#2916)
4111- Deoptimize `'' + variable'` type coercion as expression statement for feature detection (#2917)
4112- Always observe argument side-effects when tree-shaking (#2924)
4113
4114### Pull Requests
4115
4116- [#2916](https://github.com/rollup/rollup/pull/2916): Deoptimize typeof for regular expression literals to better support es6-shim (@lukastaegert)
4117- [#2917](https://github.com/rollup/rollup/pull/2917): Support implicit type coercion errors in es5-shim (@lukastaegert)
4118- [#2918](https://github.com/rollup/rollup/pull/2918): Deoptimize try-catch less radically (@lukastaegert)
4119- [#2924](https://github.com/rollup/rollup/pull/2924): Do not tree-shake arguments with side-effects (@lukastaegert)
4120
4121## 1.14.6
4122
4123_2019-06-10_
4124
4125### Bug Fixes
4126
4127- Fix an issue where call arguments were not included in try statements (#2914)
4128
4129### Pull Requests
4130
4131- [#2914](https://github.com/rollup/rollup/pull/2914): Properly include try statements for each pass when deoptimization is deactivated (@lukastaegert)
4132
4133## 1.14.5
4134
4135_2019-06-09_
4136
4137### Bug Fixes
4138
4139- Keep external ids unmodified when using the object form of resolveId (#2907)
4140- Cache dynamic import resolutions when using Rollup cache (#2908)
4141- Keep all necessary parentheses when tree-shaking call arguments (#2911)
4142
4143### Pull Requests
4144
4145- [#2906](https://github.com/rollup/rollup/pull/2906): Update dependencies (@lukastaegert)
4146- [#2907](https://github.com/rollup/rollup/pull/2907): Do not renormalize external ids when using the object form (@lukastaegert)
4147- [#2908](https://github.com/rollup/rollup/pull/2908): Cache dynamic ids if possible (@lukastaegert)
4148- [#2911](https://github.com/rollup/rollup/pull/2911): Fix treeshaken parameters around parentheses (@manucorporat)
4149
4150## 1.14.4
4151
4152_2019-06-07_
4153
4154### Bug Fixes
4155
4156- Do not omit external re-exports for `moduleSideEffects: false` (#2905)
4157
4158### Pull Requests
4159
4160- [#2905](https://github.com/rollup/rollup/pull/2905): Make sure external re-exports are included for moduleSideEffects: false (@lukastaegert)
4161
4162## 1.14.3
4163
4164_2019-06-06_
4165
4166### Bug Fixes
4167
4168- Generate correct external imports when importing from a directory that would be above the root of the current working directory (#2902)
4169
4170### Pull Requests
4171
4172- [#2902](https://github.com/rollup/rollup/pull/2902): Use browser relative path algorithm for chunks (@lukastaegert)
4173
4174## 1.14.2
4175
4176_2019-06-05_
4177
4178### Bug Fixes
4179
4180- Prevent unnecessary inclusion of external namespace import in certain situations (#2900)
4181
4182### Pull Requests
4183
4184- [#2900](https://github.com/rollup/rollup/pull/2900): Handle early bind for member expressions (@lukastaegert)
4185
4186## 1.14.1
4187
4188_2019-06-05_
4189
4190### Bug Fixes
4191
4192- Fix an issue where try-statements were not included properly when a variable declared inside the statement was accessed outside it (#2898)
4193- Fix an issue where `await` expressions were not included properly (#2899)
4194
4195### Pull Requests
4196
4197- [#2898](https://github.com/rollup/rollup/pull/2898): Properly include try-catch-statements even if they have already been included in some way (@lukastaegert)
4198- [#2899](https://github.com/rollup/rollup/pull/2899): Fix unintended early return in await inclusion handling (@lukastaegert)
4199
4200## 1.14.0
4201
4202_2019-06-05_
4203
4204### Features
4205
4206- Deoptimize code inside and called from try-statements for feature detection (#2892)
4207- Tree-shake unused call arguments (#2892)
4208
4209### Pull Requests
4210
4211- [#2892](https://github.com/rollup/rollup/pull/2892): Implement try-statement-deoptimization for feature detection, tree-shake unused arguments (@lukastaegert)
4212
4213## 1.13.1
4214
4215_2019-06-01_
4216
4217### Bug Fixes
4218
4219- Avoid conflicts between top-level module, require etc. and CommonJS runtimes (#2889)
4220
4221### Pull Requests
4222
4223- [#2888](https://github.com/rollup/rollup/pull/2888): Enable full TypeScript strict mode (@lukastaegert)
4224- [#2889](https://github.com/rollup/rollup/pull/2889): Protect all module globals for CJS output from being redefined (@lukastaegert)
4225
4226## 1.13.0
4227
4228_2019-05-31_
4229
4230### Features
4231
4232- Omit `exports` and `module` from SystemJS wrapper if possible (#2880)
4233- Try to use the first letters of names when mangling exports (#2885)
4234
4235### Bug Fixes
4236
4237- Avoid conflicts with local variables when using format specific globals to render dynamic imports and file URLs (#2880)
4238- Do not produce undefined reexports when reexporting from entry points (#2885)
4239
4240### Pull Requests
4241
4242- [#2880](https://github.com/rollup/rollup/pull/2880): Deconflict global variables used inside format-specific code (@lukastaegert)
4243- [#2885](https://github.com/rollup/rollup/pull/2885): Do not produce undefined reexports when reexporting from entry points and refactor chunk linking (@lukastaegert)
4244
4245## 1.12.5
4246
4247_2019-05-30_
4248
4249### Pull Requests
4250
4251- [#2884](https://github.com/rollup/rollup/pull/2884): Update pluginutils for new micormatch and reduced bundle size (@lukastaegert)
4252
4253## 1.12.4
4254
4255_2019-05-27_
4256
4257### Bug Fixes
4258
4259- Show correct error stack trace for errors throw in "load" hooks (#2871)
4260
4261### Pull Requests
4262
4263- [#2875](https://github.com/rollup/rollup/pull/2875): Mention subfolders in docs (@lukastaegert)
4264- [#2871](https://github.com/rollup/rollup/pull/2871): Reserve error stack information (@LongTengDao)
4265
4266## 1.12.3
4267
4268_2019-05-19_
4269
4270### Bug Fixes
4271
4272- Prevent duplicate imports when exports are reexported as default exports (#2866)
4273
4274### Pull Requests
4275
4276- [#2755](https://github.com/rollup/rollup/pull/2755): Enable TypeScript strictNullChecks (@edsrzf)
4277- [#2866](https://github.com/rollup/rollup/pull/2866): Properly deduplicate reexported default exports (@lukastaegert)
4278
4279## 1.12.2
4280
4281_2019-05-17_
4282
4283### Bug Fixes
4284
4285- Do not fail when using clearScreen:false in watchMode (#2858)
4286- Properly resolve star reexports when preserving modules (#2860)
4287
4288### Pull Requests
4289
4290- [#2858](https://github.com/rollup/rollup/pull/2858): Declare processConfigsErr before use (@humphd)
4291- [#2860](https://github.com/rollup/rollup/pull/2860): Keep nested exports with preserveModules (@TomCaserta)
4292- [#2864](https://github.com/rollup/rollup/pull/2864): Cache transitive reexport detection (@lukastaegert)
4293
4294## 1.12.1
4295
4296_2019-05-16_
4297
4298### Bug Fixes
4299
4300- Extend file name sanitation to also replace "?" and "\*" e.g. when preserving modules with the updated commonjs plugin (#2860)
4301- Do not ignore module transformer that return an empty string (#2861)
4302
4303### Pull Requests
4304
4305- [#2860](https://github.com/rollup/rollup/pull/2860): Update to latest plugins and extend file name sanitation (@lukastaegert)
4306- [#2861](https://github.com/rollup/rollup/pull/2861): Allow transformers to return an empty string (@lukastaegert)
4307
4308## 1.12.0
4309
4310_2019-05-15_
4311
4312### Features
4313
4314- Add `treeshake.moduleSideEffects` option to allow removing empty imports without a side-effect check (#2844)
4315- Extend plugin API to allow marking modules as side-effect-free (#2844)
4316- Extend `this.resolve` plugin context function with an option to skip the `resolveId` hook of the calling plugin (#2844)
4317- Add `isEntry` flag to `this.getModuleInfo` plugin context function (#2844)
4318- Distribute Rollup as optimized ES2015 code (#2851)
4319
4320### Pull Requests
4321
4322- [#2844](https://github.com/rollup/rollup/pull/2844): Add options and hooks to control module side effects (@lukastaegert)
4323- [#2851](https://github.com/rollup/rollup/pull/2851): Switch to ES2015 output (@lukastaegert)
4324
4325## 1.11.3
4326
4327_2019-05-05_
4328
4329### Bug Fixes
4330
4331- Quote es3 keywords in namespace objects (#2825)
4332
4333### Pull Requests
4334
4335- [#2825](https://github.com/rollup/rollup/pull/2825): Add es3 support for namespace object import (@sormy)
4336
4337## 1.11.2
4338
4339_2019-05-04_
4340
4341### Bug Fixes
4342
4343- Prevent a crash when handling circular namespace exports (#2836)
4344
4345### Pull Requests
4346
4347- [#2836](https://github.com/rollup/rollup/pull/2836): Make sure circular `export * from X` does not stack overflow (@Swatinem)
4348
4349## 1.11.1
4350
4351_2019-05-04_
4352
4353### Bug Fixes
4354
4355- Fix an issue where rendered exports were reported as "removed" in the bundle information (#2835)
4356
4357### Pull Requests
4358
4359- [#2835](https://github.com/rollup/rollup/pull/2835): Fix `removedExports` to correctly track the exported item (@Swatinem)
4360
4361## 1.11.0
4362
4363_2019-05-03_
4364
4365### Features
4366
4367- Add `emitChunk` plugin context function to emit additional entry chunks that can be referenced from the code (#2809)
4368- Allow `manualChunks` to be a function (#2831)
4369- Omit `.js` extensions in AMD imports to make sure an AMD `baseUrl` would work (#2809)
4370- Automatically use the name of the imported module as a base for dynamically imported chunks (#2809)
4371- Add `resolveFileUrl` plugin hook to replace `resolveAssetUrl` and handle emitted chunks as well (#2809)
4372- Add `resolve` plugin hook to replace `resolveId` and `isExternal` that returns an object (#2829)
4373- Allow `resolveDynamicImport` to return an `{id, external}` object to also resolve unresolvable dynamic imports to a module (#2829)
4374
4375### Bug Fixes
4376
4377- Do not create invalid code if a dynamic import contains nothing but reexports (#2809)
4378- Do not fail if modules that define a manual chunk depend on each other (#2809)
4379- Do not fail if a module that defines a manual chunk is the dependency of a module defining a different manual chunk (#2809)
4380- No longer fail for unnamed duplicate entry points but combine them (#2809)
4381- Always return `string | null` from `this.resolveId` even if some `resolveId` hooks return objects (#2829)
4382- Show proper warnings when `resolveDynamicImport` resolves to a non-external module that does not exist (#2829)
4383
4384### Pull Requests
4385
4386- [#2809](https://github.com/rollup/rollup/pull/2809): Add hook for dynamic entry chunk emission (@lukastaegert)
4387- [#2821](https://github.com/rollup/rollup/pull/2821): Fix syntax error in documentation (@FFxSquall)
4388- [#2829](https://github.com/rollup/rollup/pull/2829): Improve id resolution (@lukastaegert)
4389- [#2831](https://github.com/rollup/rollup/pull/2831): Allow manualChunks to be a function (@lukastaegert)
4390- [#2832](https://github.com/rollup/rollup/pull/2832): Improve `generateBundle` documentation (@lukastaegert)
4391- [#2833](https://github.com/rollup/rollup/pull/2833): Update dependencies (@lukastaegert)
4392
4393## 1.10.1
4394
4395_2019-04-19_
4396
4397### Bug Fixes
4398
4399- Invalid options.format values will now trigger a helpful error (#2813)
4400
4401### Pull Requests
4402
4403- [#2812](https://github.com/rollup/rollup/pull/2812): Minor documentation update (@dnalborczyk)
4404- [#2813](https://github.com/rollup/rollup/pull/2813): Catch invalid options.format values (@marijnh)
4405- [#2816](https://github.com/rollup/rollup/pull/2816): Update all dependencies to fix security issues (@lukastaegert)
4406
4407## 1.10.0
4408
4409_2019-04-11_
4410
4411### Features
4412
4413- Improve generated code to polyfill `import.meta.url` (#2785)
4414- Add plugin hook to configure handling of `import.meta` (#2785)
4415- Improve generated code when accessing URLs of emitted assets (#2796)
4416- Add plugin hook to configure the generated code when accessing URLs of emitted assets (#2796)
4417
4418### Bug Fixes
4419
4420- No longer resolve assets to their parent URL in some cases (#2796)
4421
4422### Pull Requests
4423
4424- [#2785](https://github.com/rollup/rollup/pull/2785): Refactor handling of import.meta.url and add option to configure behaviour (@lukastaegert)
4425- [#2796](https://github.com/rollup/rollup/pull/2796): Improve and fix asset emission (@lukastaegert)
4426
4427## 1.9.3
4428
4429_2019-04-10_
4430
4431### Bug Fixes
4432
4433- Simplify return expressions that are evaluated before the surrounding function is bound (#2803)
4434
4435### Pull Requests
4436
4437- [#2803](https://github.com/rollup/rollup/pull/2803): Handle out-of-order binding of identifiers to improve tree-shaking (@lukastaegert)
4438
4439## 1.9.2
4440
4441_2019-04-10_
4442
4443### Bug Fixes
4444
4445- Allowing replacing `output.file` with `output.dir` in the `outputOptions` hook (#2802)
4446
4447### Pull Requests
4448
4449- [#2802](https://github.com/rollup/rollup/pull/2802): Observe modified output options in bundle.write (@lukastaegert)
4450
4451## 1.9.1
4452
4453_2019-04-10_
4454
4455### Bug Fixes
4456
4457- Make sure inline comments in dynamic imports are preserved (#2797)
4458
4459### Pull Requests
4460
4461- [#2797](https://github.com/rollup/rollup/pull/2797): Emit inline comments inside dynamic import (@manucorporat)
4462
4463## 1.9.0
4464
4465_2019-04-05_
4466
4467### Features
4468
4469- Add built-in support for bigint (#2789)
4470
4471### Pull Requests
4472
4473- [#2789](https://github.com/rollup/rollup/pull/2789): Ship with bigint support built-in (@danielgindi)
4474- [#2791](https://github.com/rollup/rollup/pull/2791): Use shared extractAssignedNames from rollup-pluginutils (@lukastaegert)
4475- [#2792](https://github.com/rollup/rollup/pull/2792): Test that rollup-plugin-commonjs works with preserveModules (@lukastaegert)
4476
4477## 1.8.0
4478
4479_2019-04-02_
4480
4481### Features
4482
4483- Support `module` as alias for `esm` and `commonjs` for `cjs` to match Node (#2783)
4484
4485### Pull Requests
4486
4487- [#2782](https://github.com/rollup/rollup/pull/2782): Inline interopDefault in config loading (@guybedford)
4488- [#2783](https://github.com/rollup/rollup/pull/2783): Support Node-style format aliases (@guybedford)
4489
4490## 1.7.4
4491
4492_2019-03-28_
4493
4494### Bug Fixes
4495
4496- Improve TypeScript type of the treeshaking options (#2779)
4497
4498### Pull Requests
4499
4500- [#2779](https://github.com/rollup/rollup/pull/2779): Make all properties in TreeshakingOptions optional (@ndelangen)
4501
4502## 1.7.3
4503
4504_2019-03-24_
4505
4506### Bug Fixes
4507
4508- Use getters when re-exporting live-bindings (#2765)
4509
4510### Pull Requests
4511
4512- [#2765](https://github.com/rollup/rollup/pull/2765): Support exporting live-bindings from other chunks or external dependencies (@lukastaegert)
4513
4514## 1.7.2
4515
4516_2019-03-24_
4517
4518### Bug Fixes
4519
4520- Make sure relative external ids are resolved correctly (#2774)
4521
4522### Pull Requests
4523
4524- [#2774](https://github.com/rollup/rollup/pull/2774): Resolve relative external ids (@lukastaegert)
4525
4526## 1.7.1
4527
4528_2019-03-24_
4529
4530### Bug Fixes
4531
4532- Prevent invalid code when exporting several hundred identifiers from a chunk (#2768)
4533- Do not wrongly deconflict labels (#2776)
4534
4535### Pull Requests
4536
4537- [#2768](https://github.com/rollup/rollup/pull/2768): Sanitize shortened internal export names (@lukastaegert)
4538- [#2769](https://github.com/rollup/rollup/pull/2769): Update dependencies and fix security issue (@lukastaegert)
4539- [#2776](https://github.com/rollup/rollup/pull/2776): Do not treat break labels as identifiers (@lukastaegert)
4540
4541## 1.7.0
4542
4543_2019-03-20_
4544
4545### Features
4546
4547- Sort chunk exports by name for greater consistency (#2757)
4548
4549### Bug Fixes
4550
4551- Fix a situation where tree-shakeable code would not be removed in an indeterminate manner (#2757)
4552
4553### Pull Requests
4554
4555- [#2757](https://github.com/rollup/rollup/pull/2757): Sort modules before binding, sort exports (@lukastaegert)
4556
4557## 1.6.1
4558
4559_2019-03-20_
4560
4561### Bug Fixes
4562
4563- Avoid name clashes of unused default exports when tree-shaking is false (#2758)
4564- Do not crash when generating SystemJS bundles containing array patterns with member expressions (#2760)
4565
4566### Pull Requests
4567
4568- [#2758](https://github.com/rollup/rollup/pull/2758): Make sure unused default exports are deconflicted when tree-shaking is false (@lukastaegert)
4569- [#2760](https://github.com/rollup/rollup/pull/2760): Handle member expressions in array patterns (@lukastaegert)
4570
4571## 1.6.0
4572
4573_2019-03-08_
4574
4575### Features
4576
4577- Add plugin hook to modify output options (#2736)
4578
4579### Pull Requests
4580
4581- [#2736](https://github.com/rollup/rollup/pull/2736): Add hook for modifying OutputOptions (@Comandeer)
4582
4583## 1.5.0
4584
4585_2019-03-07_
4586
4587### Features
4588
4589- Allow resolving to a different id while marking it as external at the same time (#2734)
4590
4591### Pull Requests
4592
4593- [#2734](https://github.com/rollup/rollup/pull/2734): Allow resolveId to return an object (@lukastaegert)
4594
4595## 1.4.2
4596
4597_2019-03-07_
4598
4599### Bug Fixes
4600
4601- Respect variable identity of exports when hashing (#2741)
4602- Resolve a situations where a variable was imported twice with the same name (#2737)
4603
4604### Pull Requests
4605
4606- [#2741](https://github.com/rollup/rollup/pull/2741): Fix hashing when different variable are exported using the same name (@lukastaegert)
4607- [#2737](https://github.com/rollup/rollup/pull/2737): Fix duplicate imports with conflicting names (@lukastaegert)
4608
4609## 1.4.1
4610
4611_2019-03-04_
4612
4613### Bug Fixes
4614
4615- Do not treat the import target "" as external by default (#2733)
4616
4617### Pull Requests
4618
4619- [#2733](https://github.com/rollup/rollup/pull/2733): Do not treat the import target "" as external by default (@LongTengDao)
4620
4621## 1.4.0
4622
4623_2019-03-01_
4624
4625### Features
4626
4627- Add option to change the name of the dynamic import function to allow polyfilling it (#2723)
4628
4629### Pull Requests
4630
4631- [#2723](https://github.com/rollup/rollup/pull/2723): Add dynamicImportFunction option (@keithamus)
4632
4633## 1.3.3
4634
4635_2019-03-01_
4636
4637### Bug Fixes
4638
4639- Fix performance regression when handling long chains of calls to property methods (#2732)
4640
4641### Pull Requests
4642
4643- [#2730](https://github.com/rollup/rollup/pull/2730): Order types, interfaces, classes, and object members (@lukastaegert)
4644- [#2732](https://github.com/rollup/rollup/pull/2732): Take chunk export mode into account when reexporting default (@lukastaegert)
4645
4646## 1.3.2
4647
4648_2019-02-27_
4649
4650### Bug Fixes
4651
4652- Allow ids of default exported classes to be exported separately (#2728)
4653
4654### Pull Requests
4655
4656- [#2728](https://github.com/rollup/rollup/pull/2728): Update dependencies (@lukastaegert)
4657
4658## 1.3.1
4659
4660_2019-02-27_
4661
4662### Bug Fixes
4663
4664- Correctly reexport the default export from entry chunks (#2727)
4665
4666### Pull Requests
4667
4668- [#2727](https://github.com/rollup/rollup/pull/2727): Take chunk export mode into account when reexporting default (@lukastaegert)
4669
4670## 1.3.0
4671
4672_2019-02-26_
4673
4674### Features
4675
4676- Treeshake call expressions prefixed with UglifyJS style `@__PURE__` annotations (#2429)
4677
4678### Pull Requests
4679
4680- [#2429](https://github.com/rollup/rollup/pull/2429): Add support for /_#**PURE**_/ comments (@conartist6 and @lukastaegert)
4681
4682## 1.2.5
4683
4684_2019-02-26_
4685
4686### Bug Fixes
4687
4688- Store external ids reported by plugins in watch mode (#2718)
4689
4690### Pull Requests
4691
4692- [#2718](https://github.com/rollup/rollup/pull/2718): Incremental external (@andreas-karlsson)
4693
4694## 1.2.4
4695
4696_2019-02-26_
4697
4698### Bug Fixes
4699
4700- Fix an issue where a variable was imported twice under the same name (#2715)
4701
4702### Pull Requests
4703
4704- [#2715](https://github.com/rollup/rollup/pull/2715): Deduplicate imports referencing default exports and their original variables (@lukastaegert)
4705
4706## 1.2.3
4707
4708_2019-02-23_
4709
4710### Bug Fixes
4711
4712- Use correct path when rendering dynamic imports where the entry module is empty (#2714)
4713
4714### Pull Requests
4715
4716- [#2714](https://github.com/rollup/rollup/pull/2714): Properly render dynamic imports when imported module is empty (@lukastaegert)
4717
4718## 1.2.2
4719
4720_2019-02-19_
4721
4722### Bug Fixes
4723
4724- Fix wrong external imports when using the `paths` options only for some outputs (#2706)
4725
4726### Pull Requests
4727
4728- [#2706](https://github.com/rollup/rollup/pull/2706): Always recreate paths for external modules (@lukastaegert)
4729
4730## 1.2.1
4731
4732_2019-02-17_
4733
4734### Bug Fixes
4735
4736- Fix ESM version of Rollup (#2705)
4737
4738### Pull Requests
4739
4740- [#2705](https://github.com/rollup/rollup/pull/2705): Fix ESM version of Rollup (@lukastaegert)
4741
4742## 1.2.0
4743
4744_2019-02-17_
4745
4746### Features
4747
4748- Fewer renamed variables due to a completely reimplemented deconflicting logic (#2689)
4749
4750### Bug Fixes
4751
4752- Respect rendered and tree-shaken exports when determining chunk hashes (#2695)
4753- Fix an error when dynamic imports end up in the same chunk as one of their importees (#2677)
4754- Do not generate invalid code when expressions containing IIFEs are simplified (#2696)
4755- Do not throw an error when more than ten bundles are watched (#2700)
4756- Treat re-exported globals in a spec-compliant way (#2691)
4757- Fix issues related to wrongly renamed variables (#2689)
4758- Do not throw an error if config files contain non-default exports (#2673)
4759- Improve type of `RollupOutput.output` to guarantee at least one chunk (#2679)
4760
4761### Pull Requests
4762
4763- [#2673](https://github.com/rollup/rollup/pull/2673): Allow config files to have non-default exports (@swansontec)
4764- [#2677](https://github.com/rollup/rollup/pull/2677): Prevent final resolution and facade creation for inlined dynamic imports (@Rich-Harris and @lukastaegert)
4765- [#2679](https://github.com/rollup/rollup/pull/2679): Improve type of `RollupOutput.output` (@MattiasBuelens)
4766- [#2689](https://github.com/rollup/rollup/pull/2689): Reimplement variable deconflicting logic (@lukastaegert)
4767- [#2691](https://github.com/rollup/rollup/pull/2691): Fix CI issues and update acorn dependency (@lukastaegert)
4768- [#2693](https://github.com/rollup/rollup/pull/2693): Fix typo in export-globals test (@MattiasBuelens)
4769- [#2695](https://github.com/rollup/rollup/pull/2695): Respect rendered exports when generating chunk hashes (@lukastaegert)
4770- [#2696](https://github.com/rollup/rollup/pull/2696): Correctly render function expression inside simplified expression statements (@lukastaegert)
4771- [#2700](https://github.com/rollup/rollup/pull/2700): Add a fix for MaxListenersExceededWarning (@luwes)
4772- [#2703](https://github.com/rollup/rollup/pull/2703): Update rollup-pluginutils (@lukastaegert)
4773
4774## 1.1.2
4775
4776_2019-01-21_
4777
4778### Bug Fixes
4779
4780- Tree-shaken dynamic imports no longer leave behind `undefined` entries in the bundle information (#2663)
4781- Dynamic imports in dynamically imported files could lead to crashes and would not always create new chunks (#2664)
4782
4783### Pull Requests
4784
4785- [#2663](https://github.com/rollup/rollup/pull/2663): Do not include tree-shaken dynamic imports in bundle information (@lukastaegert)
4786- [#2664](https://github.com/rollup/rollup/pull/2664): Properly handle dynamic imports declared in dynamically imported files (@everdimension)
4787
4788## 1.1.1
4789
4790_2019-01-19_
4791
4792### Bug Fixes
4793
4794- Make sure object prototype methods are not considered to be falsy when tree-shaking (#2652)
4795
4796### Pull Requests
4797
4798- [#2652](https://github.com/rollup/rollup/pull/2652): Make sure object prototype methods are not considered to be falsy (@lukastaegert)
4799- [#2654](https://github.com/rollup/rollup/pull/2654): Use correct signature for `this.setAssetSource` in docs (@everdimension)
4800- [#2656](https://github.com/rollup/rollup/pull/2656): Swap descriptions for `[extname]` and `[ext]` in docs (@tivac)
4801
4802## 1.1.0
4803
4804_2019-01-09_
4805
4806### Features
4807
4808- Make `this.meta` available from the `options` plugin hook (#2642)
4809- Add a new `writeBundle` plugin hook that is called _after_ all files have been written (#2643)
4810
4811### Bug Fixes
4812
4813- Make sure the `acorn` import of the bundled non-ESM acorn plugins is correctly translated to ESM (#2636)
4814- Make sure input options are actually passed to the `buildStart` hook (#2642)
4815
4816### Pull Requests
4817
4818- [#2636](https://github.com/rollup/rollup/pull/2636): Improve how acorn is imported, update dependencies (@lukastaegert)
4819- [#2642](https://github.com/rollup/rollup/pull/2642): Make this.meta available in options hook, pass input options to buildStart (@lukastaegert)
4820- [#2643](https://github.com/rollup/rollup/pull/2643): Implement writeBundle hook (@lukastaegert)
4821
4822## 1.0.2
4823
4824_2019-01-05_
4825
4826### Bug Fixes
4827
4828- Make sure the transform hook is always reevaluated when a file watched by the hook changes (#2633)
4829- Fix a crash when generating hashes for tree-shaken dynamic imports (#2638)
4830- Fix a crash and some inconsistencies when using the acorn-bigint plugin (#2640)
4831
4832### Pull Requests
4833
4834- [#2633](https://github.com/rollup/rollup/pull/2633): Document `this.addWatchFile` and make sure it also declares transform dependencies (@lukastaegert)
4835- [#2635](https://github.com/rollup/rollup/pull/2635): Make sure `code` is optional in warning type (@lukastaegert)
4836- [#2638](https://github.com/rollup/rollup/pull/2638): Do not fail when generating hashes for tree-shaken dynamic imports (@lukastaegert)
4837- [#2640](https://github.com/rollup/rollup/pull/2640): Always treat bigints as unknown (@lukastaegert)
4838- [#2641](https://github.com/rollup/rollup/pull/2641): Make sure all CLI options are listed in the summary (@lukastaegert)
4839
4840## 1.0.1
4841
4842_2019-01-03_
4843
4844### Bug Fixes
4845
4846- Properly handle reexporting an external default export for non-ESM targets when using named exports mode (#2620)
4847- Do not (wrongly) re-declare input options in the merged `RollupOptions` type (#2622)
4848
4849### Pull Requests
4850
4851- [#2620](https://github.com/rollup/rollup/pull/2620): Fixed issue with reexporting default as default with `{exports: named, interop: true}` options (@Andarist)
4852- [#2622](https://github.com/rollup/rollup/pull/2622): Simplify RollupOptions (@Kinrany)
4853- [#2627](https://github.com/rollup/rollup/pull/2627): Show how to skip imports for optional plugins (@chris-morgan)
4854
4855## 1.0.0
4856
4857_2018-12-28_
4858
4859### Breaking Changes
4860
4861- Several (mostly deprecated) options have been removed or renamed (#2293, #2409):
4862 - banner -> output.banner
4863 - dest -> output.file
4864 - entry -> input
4865 - experimentalCodeSplitting -> now always active
4866 - experimentalDynamicImport -> now always active
4867 - experimentalPreserveModules -> preserveModules
4868 - exports -> output.exports
4869 - extend -> output.extend
4870 - footer -> output.footer
4871 - format -> output.format
4872 - freeze -> output.freeze
4873 - globals -> output.globals
4874 - indent -> output.indent
4875 - interop -> output.interop
4876 - intro -> output.intro
4877 - load -> use plugin API
4878 - moduleName -> output.name
4879 - name -> output.name
4880 - noConflict -> output.noConflict
4881 - output.moduleId -> output.amd.id
4882 - outro -> output.outro
4883 - paths -> output.paths
4884 - preferConst -> output.preferConst
4885 - pureExternalModules -> treeshake.pureExternalModules
4886 - resolveExternal -> use plugin API
4887 - resolveId -> use plugin API
4888 - sourcemap -> output.sourcemap
4889 - sourceMap -> output.sourcemap
4890 - sourceMapFile -> output.sourcemapFile
4891 - strict -> output.strict
4892 - targets -> use output as an array
4893 - transform -> use plugin API
4894 - useStrict -> output.strict
4895- In general, output options can no longer be used as input options (#2409)
4896- `bundle.generate` and `bundle.write` now return a new format (#2293)
4897- Several plugin hooks have become deprecated and will display warnings when used (#2409):
4898 - transformBundle
4899 - transformChunk
4900 - ongenerate
4901 - onwrite
4902- Plugin transform dependencies are deprecated in favour of using the `this.addWatchFile` plugin context function (#2409)
4903- Accessing `this.watcher` in plugin hooks is deprecated in favour of the `watchChange` plugin hook and the `this.addWatchFile` plugin context function (#2409)
4904- Using dynamic import statements will by default create a new chunk unless `inlineDynamicImports` is used (#2293)
4905- Rollup now uses acorn@6 which means that acorn plugins must be compatible with this version; acorn is now external for non-browser builds to make plugins work (#2293)
4906
4907### Features
4908
4909- The `--dir` ClI option can now be aliased as `-d` (#2293)
4910- The `--input` option now supports named entry points via `=` (#2293)
4911
4912### Bug Fixes
4913
4914- Both the `--input` option as well as the default CLI option now support named inputs (#2293)
4915
4916### Pull Requests
4917
4918- [#2293](https://github.com/rollup/rollup/pull/2293): Unify code paths for 1.0 relase and update documentation (@guybedford and @lukastaegert)
4919- [#2409](https://github.com/rollup/rollup/pull/2409): Remove old deprecated features and add new deprecation warnings (@guybedford)
4920- [#2486](https://github.com/rollup/rollup/pull/2486): Upgrade to acorn 6 (@marijnh)
4921- [#2611](https://github.com/rollup/rollup/pull/2611): Fix hook's name in test description (@Andarist)
4922- [#2612](https://github.com/rollup/rollup/pull/2612): Fix a self-contradicting comment in the docs (@LongTengDao)
4923
4924## 0.68.2
4925
4926_2018-12-23_
4927
4928### Bug Fixes
4929
4930- Do not assume hoisted variables to have been initialized (#2607)
4931
4932### Pull Requests
4933
4934- [#2607](https://github.com/rollup/rollup/pull/2607): Fix an issues where hoisted variables were assumed to have been initialized (@lye)
4935
4936## 0.68.1
4937
4938_2018-12-19_
4939
4940### Bug Fixes
4941
4942- Fix an issue with UMD wrappers where a variable is used without being defined (#2600)
4943
4944### Pull Requests
4945
4946- [#2600](https://github.com/rollup/rollup/pull/2600): Fix UMD and IIFE wrapper issues and add comprehensive functional wrapper tests (@lukastaegert)
4947
4948## 0.68.0
4949
4950_2018-12-16_
4951
4952### Breaking Changes
4953
4954- `optimizeChunks` is renamed to `experimentalOptimizeChunks` to reflect this feature is not production-ready yet (#2575)
4955
4956### Features
4957
4958- Plugins can iterate all module ids via `this.moduleIds` (#2565)
4959- Plugins can get graph information about a module via `this.getModuleInfo(id)` (#2565)
4960- Plugins and JS API users get more information about the generated chunks: `dynamicImports`, `facadeModuleId`, `isDynamicEntry`, `name` (#2575)
4961- Tree-shaken dynamic imports will no longer create chunks or influence chunking in any way (#2575)
4962- Dynamic imports will no longer follow the `entryFileNames` but the `chunkFileNames` property reflecting those are solely internally used (#2575)
4963- If there are chunk naming conflicts, entry chunks will always take precedence (#2575)
4964- If an entry facade is created, only the facade chunk is marked as `isEntry` (#2575)
4965- Dynamic chunks will only be marked as `isEntry` if they are actually entry chunks as well; thus there is now a 1-to-1 correspondence between modules listed in `input` and chunks marked as `isEntry` (#2575)
4966- Chunks no longer contain imports for variables that are tree-shaken in the chunk but used in other chunks (#2584)
4967- Chunks will always import re-exported variables directly from the chunk where they are originally exported from (#2584)
4968- Null characters will be pruned from chunk ids to allow for virtually created chunks and make `rollup-plugin-multi-entry` compatible with code-splitting and thus the upcoming 1.0 version (#2590)
4969- Simplify the UMD wrapper code as much as possible, especially if there are no exports (#2594)
4970- The UMD wrapper will now work in strict mode by checking for `self` before `this` when determining the global variable (#2594)
4971
4972### Bug Fixes
4973
4974- If a facade is created for a dynamic entry point, this facade will be imported instead of the facaded chunk (#2575)
4975- Manual chunks that include multiple entry points will have proper facades created for all entry points if necessary (#2575)
4976- If missing exports are shimmed, the shim variable will not be global but created on a per-module basis and is deconflicted with variables having the same name (#2584)
4977- Missing export shims work properly in SystemJS (#2584)
4978- `preserveModules` now handles dynamic namespace imports (#2584)
4979- Fix chunk execution order in certain scenarios (#2584)
4980- Exports and assignments using destructuring syntax will properly update the exported variables when generating SystemJS output (#2587)
4981- Hashes in chunk names will now also take dynamic imports into account (#2596)
4982
4983### Pull Requests
4984
4985- [#2565](https://github.com/rollup/rollup/pull/2565): Provide module graph information on the plugin context (@samccone)
4986- [#2575](https://github.com/rollup/rollup/pull/2575): Extend bundle information, tree-shake dynamic imports, fix dynamic import facade creation, support manual chunks with multiple entry points, make `optimizeChunks` experimental (@lukastaegert)
4987- [#2577](https://github.com/rollup/rollup/pull/2577): Update dependencies (@lukastaegert)
4988- [#2584](https://github.com/rollup/rollup/pull/2584): Prune tree-shaken chunk imports, fix missing export shimming, support dynamic namespaces when preserving modules, improve chunk execution order (@lukastaegert)
4989- [#2587](https://github.com/rollup/rollup/pull/2587): Support exports using destructuring declarations and assignments in SystemJS (@lukastaegert)
4990- [#2590](https://github.com/rollup/rollup/pull/2590): Make sure chunk ids do not contain invalid characters to allow for chunks to correspond to virtual modules (@lukastaegert)
4991- [#2594](https://github.com/rollup/rollup/pull/2594): Simplify UMD wrapper code and make sure it works in strict mode (@lukastaegert)
4992- [#2596](https://github.com/rollup/rollup/pull/2596): Take both static and dynamic dependencies into account when calculating hashes (@lukastaegert)
4993
4994## 0.67.4
4995
4996_2018-12-03_
4997
4998### Bug Fixes
4999
5000- Prevent corrupt source maps for files with very long lines (#2571)
5001
5002### Pull Requests
5003
5004- [#2571](https://github.com/rollup/rollup/pull/2571): Fix an issue with long lines in sourcemaps (@mislav)
5005
5006## 0.67.3
5007
5008_2018-11-17_
5009
5010### Bug Fixes
5011
5012- Make sure the ESM browser build is actually published to npm (#2560)
5013- Throw proper error when using `inlineDynamicImports` with `experimentalPreserveModules` (#2560)
5014
5015### Pull Requests
5016
5017- [#2552](https://github.com/rollup/rollup/pull/2552): Properly include ESM browser build in package (@lukastaegert)
5018- [#2560](https://github.com/rollup/rollup/pull/2560): Show proper error when using `inlineDynamicImports` with `experimentalPreserveModules` (@clarkdo)
5019
5020## 0.67.2
5021
5022_2018-11-17_
5023
5024### Bug Fixes
5025
5026- Prevent crash when not returning sourcemaps from `renderChunk` plugin hook (#2558)
5027
5028### Pull Requests
5029
5030- [#2558](https://github.com/rollup/rollup/pull/2558): Prevent crash when not returning sourcemaps from `renderChunk` (@kyle1320)
5031
5032## 0.67.1
5033
5034_2018-11-11_
5035
5036### Bug Fixes
5037
5038- Deconflict CLI entry points with same name but on different paths if no explicit naming is used (#2548)
5039
5040### Pull Requests
5041
5042- [#2548](https://github.com/rollup/rollup/pull/2548): Deconflict CLI entry points with same name but on different paths if no explicit naming is used (@lukastaegert)
5043
5044## 0.67.0
5045
5046_2018-11-04_
5047
5048### Breaking Changes
5049
5050none
5051
5052### Features
5053
5054- Do not resolve external dynamic imports via plugins to match the logic for static external imports again (#2505)
5055- Support virtual modules created by plugins when preserving modules (#2511)
5056- Add new `output.sourcemapExcludeSources` option to exclude the actual sources from sourcemaps (#2531)
5057
5058### Bug Fixes
5059
5060- Fix TypeScript type for sourcemaps (#2507)
5061- Fix order of external and inter-chunk imports to match the proper execution order (#2508)
5062- Do not tree-shake children of unknown nodes to e.g. properly handle do-expressions via acorn plugin (#2510)
5063- Prevent memory leak when using the bundle as cache (#2522)
5064- Fix mis-placed semicolons for certain SystemJS exports (#2529)
5065
5066### Pull Requests
5067
5068- [#2505](https://github.com/rollup/rollup/pull/2505): Do not resolve external dynamic imports via plugins (@lukastaegert)
5069- [#2507](https://github.com/rollup/rollup/pull/2507): Fix public sourcemap type (@aMarCruz)
5070- [#2508](https://github.com/rollup/rollup/pull/2508): Improve execution order of chunks and externals (@lukastaegert)
5071- [#2510](https://github.com/rollup/rollup/pull/2510): Do not tree-shake children of unknown nodes to e.g. properly handle do-expressions via acorn plugin (@devsnek)
5072- [#2511](https://github.com/rollup/rollup/pull/2511): Create chunks for virtual modules when preserving modules (@lukastaegert)
5073- [#2522](https://github.com/rollup/rollup/pull/2522): Prevent memory leak when using the bundle as cache (@kyle1320)
5074- [#2529](https://github.com/rollup/rollup/pull/2529): Fix mis-placed semicolons for certain SystemJS exports (@kyle1320)
5075- [#2531](https://github.com/rollup/rollup/pull/2531): add `sourcemapExcludeSources` option to exclude the source content from sourcemaps (@kitsonk)
5076
5077## 0.66.6
5078
5079_2018-10-10_
5080
5081- Properly deconflict function and class declaration ids of reassigned default exports ([#2502](https://github.com/rollup/rollup/pull/2502))
5082
5083## 0.66.5
5084
5085_2018-10-09_
5086
5087- Remove cache from memory once no longer needed ([#2496](https://github.com/rollup/rollup/pull/2496))
5088- Provide better error message when reexporting external namespace reexports ([#2499](https://github.com/rollup/rollup/pull/2499))
5089
5090## 0.66.4
5091
5092_2018-10-04_
5093
5094- Fix links in warnings and errors ([#2471](https://github.com/rollup/rollup/pull/2471))
5095
5096## 0.66.3
5097
5098_2018-10-03_
5099
5100- Detect side-effects in string.replace function arguments ([#2476](https://github.com/rollup/rollup/pull/2476))
5101- Make sure chunk ids are assigned before creating output bundle ([#2483](https://github.com/rollup/rollup/pull/2483))
5102- Use proper plugin name in error ([#2470](https://github.com/rollup/rollup/pull/2470))
5103- Update TypeScript version and fix type errors ([#2488](https://github.com/rollup/rollup/pull/2488))
5104
5105## 0.66.2
5106
5107_2018-09-21_
5108
5109- Add additional information to parse errors messages in JSON and other non-JS files ([#2466](https://github.com/rollup/rollup/pull/2466))
5110
5111## 0.66.1
5112
5113_2018-09-19_
5114
5115- Ignore falsy plugins ([#2464](https://github.com/rollup/rollup/pull/2464))
5116- Switch back to official TypeScript plugin ([#2465](https://github.com/rollup/rollup/pull/2465))
5117
5118## 0.66.0
5119
5120_2018-09-16_
5121
5122- Support ES2019 optional catch bindings ([#2455](https://github.com/rollup/rollup/pull/2455))
5123- Add option to transform paths within sourcemaps ([#2430](https://github.com/rollup/rollup/pull/2430))
5124- Add renderStart and renderEnd plugin hooks ([#2438](https://github.com/rollup/rollup/pull/2438))
5125- Expose ESM browser build and minify browser builds ([#2437](https://github.com/rollup/rollup/pull/2437)
5126- Associate hoisted variables in function bodys with function parameters ([#2456](https://github.com/rollup/rollup/pull/2456))
5127- Fix issue when deconflicting variables used as pattern defaults ([#2446](https://github.com/rollup/rollup/pull/2446))
5128- Properly deconflict default exported class and function expressions with ids ([#2458](https://github.com/rollup/rollup/pull/2458))
5129- Faster internal test builds ([#2457](https://github.com/rollup/rollup/pull/2457))
5130- Switch to rollup-plugin-typescript2 ([#2460](https://github.com/rollup/rollup/pull/2460))
5131- Fix internal "perf" script ([#2433](https://github.com/rollup/rollup/pull/2433))
5132- Test that errors are passed to the buildEnd hook ([#2450](https://github.com/rollup/rollup/pull/2450))
5133
5134## 0.65.2
5135
5136_2018-09-05_
5137
5138- Prevent watch mode memory leak ([#2441](https://github.com/rollup/rollup/pull/2441))
5139
5140## 0.65.1
5141
5142_2018-09-05_
5143
5144- Prevent globbing when using chokidar ([#2432](https://github.com/rollup/rollup/pull/2432))
5145
5146## 0.65.0
5147
5148_2018-08-25_
5149
5150- Refactor and unify plugin system ([#2382](https://github.com/rollup/rollup/pull/2382))
5151- Implement plugin cache API ([#2389](https://github.com/rollup/rollup/pull/2389))
5152- Add watchChange plugin hook to watch changed files, deprecate asset dependencies ([#2405](https://github.com/rollup/rollup/pull/2405))
5153- Refine asset handling ([#2369](https://github.com/rollup/rollup/pull/2369))
5154- Implement `renderChunk` hook to replace `transformChunk` and `transformBundle` hooks ([#2406](https://github.com/rollup/rollup/pull/2406))
5155- Add rollup version to plugin context ([#2394](https://github.com/rollup/rollup/pull/2394))
5156- Do not resume stdin in watch mode to fix it for Lerna users ([#2410](https://github.com/rollup/rollup/pull/2410))
5157- Allow `[format]` placeholder for id generation ([#2387](https://github.com/rollup/rollup/pull/2387))
5158- Always log error stacks even when a code frame is given ([#2417](https://github.com/rollup/rollup/pull/2417))
5159- Do not test module ids starting with `\0` as external ([#2400](https://github.com/rollup/rollup/pull/2400))
5160- Fix tracing of namespace variables ([#2408](https://github.com/rollup/rollup/pull/2408))
5161- Fix re-tracing of namespace variables ([#2420](https://github.com/rollup/rollup/pull/2420))
5162- Properly wrap comment annotations in SystemJS exports ([#2408](https://github.com/rollup/rollup/pull/2408))
5163- Fix renaming of destructured parameters ([#2419](https://github.com/rollup/rollup/pull/2419))
5164- Do not display version in watch mode when using `--silent` ([#2392](https://github.com/rollup/rollup/pull/2392))
5165- Make `cacheExpiry` an experimental option for now ([#2401](https://github.com/rollup/rollup/pull/2401))
5166- Lint test configs on commit ([#2402](https://github.com/rollup/rollup/pull/2402))
5167- Add code of conduct ([#2388](https://github.com/rollup/rollup/pull/2388))
5168- Move to CircleCI ([#2390](https://github.com/rollup/rollup/pull/2390))
5169- Update pull request template ([#2404](https://github.com/rollup/rollup/pull/2404))
5170
5171## 0.64.1
5172
5173_2018-08-07_
5174
5175- Do not render initializers of hoisted variables in dead branches ([#2384](https://github.com/rollup/rollup/pull/2384))
5176
5177## 0.64.0
5178
5179_2018-08-07_
5180
5181- Print memory consumption together with performance timings ([#2370](https://github.com/rollup/rollup/pull/2370))
5182- Enable plugins to mark imports as external by returning false for resolveId ([#2351](https://github.com/rollup/rollup/pull/2351))
5183- Always retain empty manual chunks ([#2362](https://github.com/rollup/rollup/pull/2362))
5184- Ensure CLI warnings are shown on errors and add error for external id collisions ([#2334](https://github.com/rollup/rollup/pull/2334))
5185- Remove unnecessary dependency, update dependencies, fix linting of test config ([#2376](https://github.com/rollup/rollup/pull/2376))
5186- Add targeted Github issue templates ([#2356](https://github.com/rollup/rollup/pull/2356))
5187
5188## 0.63.5
5189
5190_2018-08-01_
5191
5192- Ensure onwrite plugin hooks execute in sequence ([#2364](https://github.com/rollup/rollup/pull/2364))
5193- Always warn when no name is provided for a global module ([#2359](https://github.com/rollup/rollup/pull/2359))
5194- Add utility type for user created plugins ([#2355](https://github.com/rollup/rollup/pull/2355))
5195- Remove deprecated es6 format from types ([#2349](https://github.com/rollup/rollup/pull/2349))
5196- Mark inlineDynamicImports as optional in types ([#2348](https://github.com/rollup/rollup/pull/2348))
5197
5198## 0.63.4
5199
5200_2018-07-20_
5201
5202- Use turbocolor instead of chalk ([#2339](https://github.com/rollup/rollup/pull/2339))
5203
5204## 0.63.3
5205
5206_2018-07-20_
5207
5208- Handle expressions where "in" and "instanceof" are applied to primitive values ([#2344](https://github.com/rollup/rollup/pull/2344))
5209
5210## 0.63.2
5211
5212_2018-07-18_
5213
5214- Fix bind order in for-of loops ([#2338](https://github.com/rollup/rollup/pull/2338))
5215
5216## 0.63.1
5217
5218_2018-07-18_
5219
5220## 0.63.0
5221
5222_2018-07-17_
5223
5224- Fix many tree-shaking related issues ([#2315](https://github.com/rollup/rollup/pull/2315))
5225- Add experimental support for top-level await ([#2235](https://github.com/rollup/rollup/pull/2235))
5226- Prevent duplicate version printout in watch mode ([#2325](https://github.com/rollup/rollup/pull/2325))
5227- Respect error frames provided by plugins ([#2309](https://github.com/rollup/rollup/pull/2309))
5228- Add `esm` format alias to types ([#2327](https://github.com/rollup/rollup/pull/2327))
5229- Further unify internal test setup ([#2329](https://github.com/rollup/rollup/pull/2329))
5230
5231## 0.62.0
5232
5233_2018-06-27_
5234
5235- Add option to automatically shim missing exports ([#2118](https://github.com/rollup/rollup/pull/2118))
5236- Inline dynamic imports that are also imported statically and only used in a single chunk ([#2295](https://github.com/rollup/rollup/pull/2295))
5237- Handle caching and invalidation of assets ([#2267](https://github.com/rollup/rollup/pull/2267))
5238- Fix plugin related types ([#2299](https://github.com/rollup/rollup/pull/2299))
5239
5240## 0.61.2
5241
5242_2018-06-23_
5243
5244- Improve watcher error handling, only rebuild invalidated outputs ([#2296](https://github.com/rollup/rollup/pull/2296))
5245- Update dependencies, make watcher more stable ([#2297](https://github.com/rollup/rollup/pull/2297))
5246
5247## 0.61.1
5248
5249_2018-06-21_
5250
5251- Do not try to deconflict "undefined" ([#2291](https://github.com/rollup/rollup/pull/2291))
5252- Properly track values for loop interator declarations and reassigned namespaces, add smoke test ([#2292](https://github.com/rollup/rollup/pull/2292))
5253
5254## 0.61.0
5255
5256_2018-06-20_
5257
5258- Declare file dependencies via transform plugin hooks ([#2259](https://github.com/rollup/rollup/pull/2259))
5259- Handle undefined values when evaluating conditionals ([#2264](https://github.com/rollup/rollup/pull/2264))
5260- Handle known undefined properties when evaluating conditionals ([#2265](https://github.com/rollup/rollup/pull/2265))
5261- Access watch events via the plugin context ([#2261](https://github.com/rollup/rollup/pull/2261))
5262- Add option to suppress `__esModule` flag in output ([#2287](https://github.com/rollup/rollup/pull/2287))
5263- Fix issue when re-declaring variables, track reassignments in more cases ([#2279](https://github.com/rollup/rollup/pull/2279))
5264- Add VSCode debug settings ([#2276](https://github.com/rollup/rollup/pull/2276))
5265
5266## 0.60.7
5267
5268_2018-06-14_
5269
5270- Fix typing issue ([#2269](https://github.com/rollup/rollup/pull/2269))
5271
5272## 0.60.6
5273
5274_2018-06-14_
5275
5276- Track mutations of included virtual arrays ([#2263](https://github.com/rollup/rollup/pull/2263))
5277- Update readme ([#2266](https://github.com/rollup/rollup/pull/2266))
5278
5279## 0.60.5
5280
5281_2018-06-14_
5282
5283- Track deep reassignments of global and exported variables and improve performance ([#2254](https://github.com/rollup/rollup/pull/2254))
5284
5285## 0.60.4
5286
5287_2018-06-13_
5288
5289- Properly handle initially uninitialized exports and exports of globals in SystemJS output ([#2258](https://github.com/rollup/rollup/pull/2258))
5290
5291## 0.60.3
5292
5293_2018-06-13_
5294
5295- Fix types to allow watching an array of outputs ([#2262](https://github.com/rollup/rollup/pull/2262))
5296
5297## 0.60.2
5298
5299_2018-06-11_
5300
5301- Permit setting an asset's source in `generateBundle` ([#2256](https://github.com/rollup/rollup/pull/2256))
5302- Add automatic linting ([#2242](https://github.com/rollup/rollup/pull/2242))
5303
5304## 0.60.1
5305
5306_2018-06-07_
5307
5308- Fix plugin regressions ([#2246](https://github.com/rollup/rollup/pull/2246))
5309- Avoid conflicts for large numbers of variables ([#2244](https://github.com/rollup/rollup/pull/2244))
5310
5311## 0.60.0
5312
5313_2018-06-06_
5314
5315- New plugin hooks: transformChunk, buildStart, buildEnd; extended plugin context with warn, error, resolveId, isExternal, emitAsset, setAssetSource and getAssetFileName available to any hook ([#2208](https://github.com/rollup/rollup/pull/2208))
5316- [BREAKING] Deprecate the `legacy` option and thus IE8 support ([#2141](https://github.com/rollup/rollup/pull/2141))
5317- Detect more known extensions and load .mjs without extension ([#2211](https://github.com/rollup/rollup/pull/2211))
5318- Add compact output mode ([#2151](https://github.com/rollup/rollup/pull/2151))
5319- Significantly improve sourcemap generation performance ([#2228](https://github.com/rollup/rollup/pull/2228))
5320- Enable naming SystemJS modules ([#2028](https://github.com/rollup/rollup/pull/2028))
5321- Do not use alternate screen if clearScreen is set in watch mode ([#2125](https://github.com/rollup/rollup/pull/2125))
5322- Allow object input form for code-splitting in watch mode ([#2217](https://github.com/rollup/rollup/pull/2217))
5323- Track reassignments of methods of exports from outside ([#2240](https://github.com/rollup/rollup/pull/2240))
5324- Preserve id of default exported functions and classes ([#2234](https://github.com/rollup/rollup/pull/2234))
5325- Add semicolons after default exports ([#2209](https://github.com/rollup/rollup/pull/2209))
5326- Fix build problems on Windows ([#2232](https://github.com/rollup/rollup/pull/2232))
5327- Display install size in readme ([#2196](https://github.com/rollup/rollup/pull/2196))
5328- Improve preserve modules test ([#2236](https://github.com/rollup/rollup/pull/2236))
5329
5330## 0.59.4
5331
5332_2018-05-28_
5333
5334- Fix performance regression when many return statements are used ([#2218](https://github.com/rollup/rollup/pull/2218))
5335
5336## 0.59.3
5337
5338_2018-05-24_
5339
5340- Fix reassignment tracking for constructor parameters ([#2214](https://github.com/rollup/rollup/pull/2214))
5341
5342## 0.59.2
5343
5344_2018-05-21_
5345
5346- Fix reassignment tracking in for-in loops ([#2205](https://github.com/rollup/rollup/pull/2205))
5347
5348## 0.59.1
5349
5350_2018-05-16_
5351
5352- Fix infinite recursion when determining literal values of circular structures ([#2193](https://github.com/rollup/rollup/pull/2193))
5353- Fix invalid code when simplifying expressions without spaces ([#2194](https://github.com/rollup/rollup/pull/2194))
5354
5355## 0.59.0
5356
5357_2018-05-15_
5358
5359- Tree-shake statically analysable dynamic conditionals ([#2167](https://github.com/rollup/rollup/pull/2167))
5360- Do not emit empty chunks when code-splitting or empty files when preserving modules ([#2128](https://github.com/rollup/rollup/pull/2128))
5361- Support `import.meta.url` ([#2164](https://github.com/rollup/rollup/pull/2164))
5362- Add `esm` format alias ([#2102](https://github.com/rollup/rollup/pull/2102))
5363- Use alphanumeric base64 characters when deconflicting variables ([#2188](https://github.com/rollup/rollup/pull/2188))
5364- Improve handling of external modules imported as both default and named imports ([#2136](https://github.com/rollup/rollup/pull/2136))
5365- Properly deconflict named imports from other chunks ([#2177](https://github.com/rollup/rollup/pull/2177))
5366- Fix an issue with namespaces containing reexports ([#2157](https://github.com/rollup/rollup/pull/2157))
5367- Fix an issue with with incorrectly mapped default exports when code-splitting CJS or AMD modules ([#2178](https://github.com/rollup/rollup/pull/2178))
5368- Fix an issue with wrong paths of relative external imports ([#2160](https://github.com/rollup/rollup/pull/2160))
5369- Fix an issue when using default exports and `interop: false` ([#2149](https://github.com/rollup/rollup/pull/2149))
5370- Fix in issue with invalid syntax in SystemJS output ([#2187](https://github.com/rollup/rollup/pull/2187))
5371- Fix an issue when tree-shaking call expressions and reassigned variables ([#2186](https://github.com/rollup/rollup/pull/2186))
5372- Fix file paths in source maps ([#2161](https://github.com/rollup/rollup/pull/2161))
5373- Fix wrong file name in error message ([#2137](https://github.com/rollup/rollup/pull/2137))
5374- Always use npm 5 on CI ([#2185](https://github.com/rollup/rollup/pull/2185))
5375
5376## 0.58.2
5377
5378_2018-04-23_
5379
5380- Fix rendering of certain statically resolvable if statements ([#2146](https://github.com/rollup/rollup/pull/2146))
5381
5382## 0.58.1
5383
5384_2018-04-18_
5385
5386- Fix comment detection ([#2129](https://github.com/rollup/rollup/pull/2129))
5387
5388## 0.58.0
5389
5390_2018-04-16_
5391
5392- Support individual chunk names with optional content hashes ([#2068](https://github.com/rollup/rollup/pull/2068))
5393- Support manually created chunks ([#2084](https://github.com/rollup/rollup/pull/2084))
5394- Automatically import deep dependencies when code splitting for better performance ([#2073](https://github.com/rollup/rollup/pull/2073))
5395- Automatically minify internal export/import names for esm and system output ([#2087](https://github.com/rollup/rollup/pull/2087))
5396- Add option to automatically merge small chunks ([#2090](https://github.com/rollup/rollup/pull/2090))
5397- Significantly improve tree-shaking performance ([#2119](https://github.com/rollup/rollup/pull/2119))
5398- Enable tree-shaking for logical expressions ([#2098](https://github.com/rollup/rollup/pull/2098))
5399- Rework external types and reduce type related dependencies ([#2108](https://github.com/rollup/rollup/pull/2108))
5400- Support parallel dependency resolution ([#2116](https://github.com/rollup/rollup/pull/2116))
5401- Improve deprecation handling ([#2076](https://github.com/rollup/rollup/pull/2076))
5402- Enable `--perf` timings in watch mode ([#2065](https://github.com/rollup/rollup/pull/2065))
5403- Improve performance timers ([#2111](https://github.com/rollup/rollup/pull/2111))
5404- Improve error handling for plugins ([#2100](https://github.com/rollup/rollup/pull/2100))
5405- Improve error when using `--dir` in a single file build ([#2123](https://github.com/rollup/rollup/pull/2123))
5406- Do not warn for external imports that are unused due to tree-shaking ([#2124](https://github.com/rollup/rollup/pull/2124))
5407- Update mixed export warning message ([#2107](https://github.com/rollup/rollup/pull/2107))
5408- Remove duplicate badges from readme ([#2083](https://github.com/rollup/rollup/pull/2083))
5409- Update readme examples ([#2086](https://github.com/rollup/rollup/pull/2086))
5410
5411## 0.57.1
5412
5413_2018-03-17_
5414
5415- Improve sourcemap generation performance ([#2062](https://github.com/rollup/rollup/pull/2062))
5416- Add reserved config option namespace and improve CLI interface ([#2063](https://github.com/rollup/rollup/pull/2063))
5417- Fix issue with default exported function and class expressions ([#2059](https://github.com/rollup/rollup/pull/2059))
5418- Replace `forEach` with faster `for` loops in some places ([#2064](https://github.com/rollup/rollup/pull/2064))
5419
5420## 0.57.0
5421
5422_2018-03-15_
5423
5424- Add option to preserve the module structure instead of bundling ([#1922](https://github.com/rollup/rollup/pull/1922))
5425- Enable watch mode when code-splitting ([#2035](https://github.com/rollup/rollup/pull/2035))
5426- Optionally pass CLI commands to config file ([#1926](https://github.com/rollup/rollup/pull/1926))
5427- Option to add correct `.toString` tags to namespaces ([#2041](https://github.com/rollup/rollup/pull/2041))
5428- Option and scripts to display performance timings ([#2045](https://github.com/rollup/rollup/pull/2045))
5429- Fixes for exported or early accessed namespaces + improved namespace indentation ([#2041](https://github.com/rollup/rollup/pull/2041))
5430- Include missing TypeScript dependencies ([#1965](https://github.com/rollup/rollup/pull/1965))
5431- Add #\_PURE annotation to frozen namespaces ([#2044](https://github.com/rollup/rollup/pull/2044))
5432- Improve sourcemap and tree-shaking performance ([#2052](https://github.com/rollup/rollup/pull/2052))
5433- Inline sourcemap lookups and make rollup smaller ([#2055](https://github.com/rollup/rollup/pull/2055))
5434- Use updated magic-string types ([#2057](https://github.com/rollup/rollup/pull/2057))
5435- [BREAKING] Revert class id preservation from #2025 ([#2048](https://github.com/rollup/rollup/pull/2048))
5436- [BREAKING] Refactor missing export plugin hook ([#1987](https://github.com/rollup/rollup/pull/1987))
5437
5438## 0.56.5
5439
5440_2018-03-07_
5441
5442- Preserve ids when deconflicting classes ([#2025](https://github.com/rollup/rollup/pull/2025))
5443- Fix an issue with re-exported namespace imports ([#2034](https://github.com/rollup/rollup/pull/2034))
5444- Prevent an infinite loop when binding member expressions ([#1963](https://github.com/rollup/rollup/pull/1963))
5445- Convert code style via prettier ([#2031](https://github.com/rollup/rollup/pull/2031))
5446- Fix links in documentation ([#2026](https://github.com/rollup/rollup/pull/2026))
5447
5448## 0.56.4
5449
5450_2018-03-05_
5451
5452- Make rollup builds reproducible ([#2024](https://github.com/rollup/rollup/pull/2024))
5453- Improve error handling for source maps ([#2012](https://github.com/rollup/rollup/pull/2012))
5454- Properly handle SystemJS default exports without semicolons ([#2019](https://github.com/rollup/rollup/pull/2019))
5455- Properly handle importing the same variable several times when code-splitting ([#2020](https://github.com/rollup/rollup/pull/2020))
5456- Improve re-export tracing ([#2021](https://github.com/rollup/rollup/pull/2021))
5457- Apply "prettier" on commit ([#2017](https://github.com/rollup/rollup/pull/2017))
5458- Automatically clean up outdated tests ([#2009](https://github.com/rollup/rollup/pull/2009))
5459- Add SystemJS output to form tests ([#2022](https://github.com/rollup/rollup/pull/2022))
5460- Improve internal build configuration ([#2016](https://github.com/rollup/rollup/pull/2016))
5461
5462## 0.56.3
5463
5464_2018-02-25_
5465
5466- Fix issues around default exports and module facades ([#2001](https://github.com/rollup/rollup/pull/2001))
5467- Improve and fix internal chunk interface ([#1994](https://github.com/rollup/rollup/pull/1994))
5468- Fix superfluous semicolons added after declarations ([#1999](https://github.com/rollup/rollup/pull/1999))
5469- Improve code-splitting tests ([#1990](https://github.com/rollup/rollup/pull/1990))
5470
5471## 0.56.2
5472
5473_2018-02-19_
5474
5475- Fix handling of reassigned default exports ([#1975](https://github.com/rollup/rollup/pull/1975))
5476- Fix handling of renamed exports in entry points ([#1977](https://github.com/rollup/rollup/pull/1977))
5477- Update internal TypeScript version ([#1980](https://github.com/rollup/rollup/pull/1980))
5478- Omit compiled source files from published types ([#1981](https://github.com/rollup/rollup/pull/1981))
5479- Fix example in readme file ([#1984](https://github.com/rollup/rollup/pull/1984))
5480- Fix non-replaced dynamic imports in non-ESM output ([#1985](https://github.com/rollup/rollup/pull/1985))
5481
5482## 0.56.1
5483
5484_2018-02-16_
5485
5486- Fix regression when rendering switch statements ([#1971](https://github.com/rollup/rollup/pull/1971))
5487
5488## 0.56.0
5489
5490_2018-02-15_
5491
5492- Update to ECMAScript 2018 ([#1953](https://github.com/rollup/rollup/pull/1953))
5493- Rework tree-shaking rendering algorithm ([#1949](https://github.com/rollup/rollup/pull/1949))
5494- Tree-shake pure prototype calls on literals ([#1916](https://github.com/rollup/rollup/pull/1916))
5495- Expose AST parser to plugins ([#1945](https://github.com/rollup/rollup/pull/1945))
5496- Fix namespace re-export deconflicting ([#1960](https://github.com/rollup/rollup/pull/1960))
5497- Allow globals to be re-exported ([#1959](https://github.com/rollup/rollup/pull/1959))
5498- Fix internal performance timers ([#1966](https://github.com/rollup/rollup/pull/1966))
5499
5500## 0.55.5
5501
5502_2018-02-10_
5503
5504- Remove OpenCollective dependency ([#1915](https://github.com/rollup/rollup/pull/1915))
5505
5506## 0.55.4
5507
5508_2018-02-09_
5509
5510- Improve name deconflicting of external variables ([#1930](https://github.com/rollup/rollup/pull/1930))
5511- Improve re-export handling ([#1947](https://github.com/rollup/rollup/pull/1947))
5512- Mark preserveSymlinks option as optional ([#1939](https://github.com/rollup/rollup/pull/1939))
5513- Enable code-splitting tests to check directory structures ([#1924](https://github.com/rollup/rollup/pull/1924))
5514- Improve TypeScript definition test ([#1954](https://github.com/rollup/rollup/pull/1954))
5515
5516## 0.55.3
5517
5518_2018-02-01_
5519
5520- Remove OpenCollective dependency ([#1915](https://github.com/rollup/rollup/pull/1915))
5521
5522## 0.55.2
5523
5524_2018-02-01_
5525
5526- Add option to not follow symlinks ([#1819](https://github.com/rollup/rollup/pull/1819))
5527- Fix crash in windows shell ([#1928](https://github.com/rollup/rollup/pull/1928))
5528- Fix and test for external TypeScript errors ([#1903](https://github.com/rollup/rollup/pull/1903))
5529- Activate OpenCollective ([#1915](https://github.com/rollup/rollup/pull/1915))
5530- Optimize CI scripts ([#1921](https://github.com/rollup/rollup/pull/1921))
5531
5532## 0.55.1
5533
5534_2018-01-26_
5535
5536- Improve dynamic import workflow ([#1907](https://github.com/rollup/rollup/pull/1907))
5537- Properly handle multiple dynamic imports of the same module ([#1911](https://github.com/rollup/rollup/pull/1911))
5538- Fix import specifier deshadowing ([#1912](https://github.com/rollup/rollup/pull/1912))
5539- Allow plugin load hook to return an empty string ([#1908](https://github.com/rollup/rollup/pull/1908))
5540- Let onwarn handler accept strings ([#1905](https://github.com/rollup/rollup/pull/1905))
5541
5542## 0.55.0
5543
5544_2018-01-23_
5545
5546- Support code splitting ([#1841](https://github.com/rollup/rollup/pull/1841))
5547- Support SystemJS as output format ([#1897](https://github.com/rollup/rollup/pull/1897))
5548- Allow injecting acorn plugins ([#1857](https://github.com/rollup/rollup/pull/1857))
5549- Add `missingExport` plugin hook ([#1845](https://github.com/rollup/rollup/pull/1845))
5550- No longer parse config files via bublé ([#1899](https://github.com/rollup/rollup/pull/1899))
5551- Use externally maintained dynamic import acorn plugin ([#1891](https://github.com/rollup/rollup/pull/1891))
5552- Fix an error message ([#1886](https://github.com/rollup/rollup/pull/1886))
5553- Refactor internal rendering options ([#1900](https://github.com/rollup/rollup/pull/1900))
5554- Extract internal path resolution ([#1879](https://github.com/rollup/rollup/pull/1879))
5555- Extract internal bundle option handling ([#1880](https://github.com/rollup/rollup/pull/1880))
5556- Add import description type ([#1884](https://github.com/rollup/rollup/pull/1884))
5557- Clean up watch options types ([#1860](https://github.com/rollup/rollup/pull/1860))
5558- Clean up some tests ([#1888](https://github.com/rollup/rollup/pull/1888))
5559
5560## 0.54.1
5561
5562_2018-01-17_
5563
5564- Fix TypeScript errors in emitted type definitions ([#1871](https://github.com/rollup/rollup/pull/1871))
5565
5566## 0.54.0
5567
5568_2018-01-12_
5569
5570- Automatically inline locally resolvable dynamic imports ([#1816](https://github.com/rollup/rollup/pull/1816))
5571- Preserve directives in function bodies ([#1856](https://github.com/rollup/rollup/pull/1856))
5572- Refactor an error notification ([#1846](https://github.com/rollup/rollup/pull/1846))
5573- Refactor a wrong import ([#1863](https://github.com/rollup/rollup/pull/1863))
5574- Improve emitted TypeScript definitions ([#1864](https://github.com/rollup/rollup/pull/1864))
5575- Refactor unused import ([#1866](https://github.com/rollup/rollup/pull/1866))
5576
5577## 0.53.4
5578
5579_2018-01-10_
5580
5581- More type cleanup ([#1858](https://github.com/rollup/rollup/pull/1858))
5582- Use chalks internal helper to detect if colors should be used ([#1853](https://github.com/rollup/rollup/pull/1853))
5583- Refactor entity handling to use interfaces ([#1840](https://github.com/rollup/rollup/pull/1840))
5584- Use immutable.js internal types ([#1844](https://github.com/rollup/rollup/pull/1844))
5585- Ship `TypeScript` declaration files ([#1837](https://github.com/rollup/rollup/pull/1837))
5586
5587## 0.53.3
5588
5589_2018-01-02_
5590
5591- Use correct name when re-exporting from external modules ([#1794](https://github.com/rollup/rollup/pull/1794))
5592- Disable warnings when `resolveId` returns false ([#1825](https://github.com/rollup/rollup/pull/1825))
5593
5594## 0.53.2
5595
5596_2017-12-30_
5597
5598- Properly handle output arrays in the JavaScript API ([#1827](https://github.com/rollup/rollup/pull/1827))
5599
5600## 0.53.1
5601
5602_2017-12-28_
5603
5604- Properly deprecate more config options ([#1812](https://github.com/rollup/rollup/pull/1812))
5605- Pass output options to `transformBundle` plugin hook ([#1813](https://github.com/rollup/rollup/pull/1813))
5606
5607## 0.53.0
5608
5609_2017-12-22_
5610
5611- Experimental dynamic import support ([#1790](https://github.com/rollup/rollup/pull/1790))
5612- Unify config validation ([#1805](https://github.com/rollup/rollup/pull/1805))
5613
5614## 0.52.3
5615
5616_2017-12-19_
5617
5618- Properly hoist default exported functions in more situations ([#1799](https://github.com/rollup/rollup/pull/1799))
5619- Allow plugin transformations to not overwrite source maps by returning null ([#1797](https://github.com/rollup/rollup/pull/1797))
5620- Provide more parameters to "external" handler ([#1792](https://github.com/rollup/rollup/pull/1792))
5621
5622## 0.52.2
5623
5624_2017-12-15_
5625
5626- No longer ignore side-effects in JSON.parse and JSON.stringify ([#1785](https://github.com/rollup/rollup/pull/1785))
5627- Updated links in warnings ([#1776](https://github.com/rollup/rollup/pull/1776))
5628- No longer prevent self-imports ([#1777](https://github.com/rollup/rollup/pull/1777))
5629- Properly hoist default exported functions ([#1787](https://github.com/rollup/rollup/pull/1787))
5630- Prevent corruption when re-exporting default exports ([#1765](https://github.com/rollup/rollup/pull/1765))
5631
5632## 0.52.1
5633
5634_2017-12-05_
5635
5636- Improve deprecation warnings ([#1765](https://github.com/rollup/rollup/pull/1765))
5637- Properly use stdin ([#1774](https://github.com/rollup/rollup/pull/1774))
5638- Let --environment be used multiple times ([#1768](https://github.com/rollup/rollup/pull/1768))
5639- Always transpile config files ([#1759](https://github.com/rollup/rollup/pull/1759))
5640- Respect globals option in headers of UMD and IIFE files ([#1747](https://github.com/rollup/rollup/pull/1747))
5641
5642## 0.52.0
5643
5644_2017-11-25_
5645
5646- Accept config as promise ([#1731](https://github.com/rollup/rollup/pull/1731))
5647- Accept promises for intro/outro/banner/footer ([#1253](https://github.com/rollup/rollup/pull/1253))
5648- Option to prevent freezing of namespace imports ([#1696](https://github.com/rollup/rollup/pull/1696))
5649- Option to retain all output in watch mode ([#1688](https://github.com/rollup/rollup/pull/1688))
5650- Options to fine-tune treeshaking ([#1760](https://github.com/rollup/rollup/pull/1760))
5651
5652## 0.51.8
5653
5654_2017-11-19_
5655
5656- Fix speed problems by simplifying treeshaking reassignment handling ([#1740](https://github.com/rollup/rollup/pull/1740))
5657- Update dependencies ([#1742](https://github.com/rollup/rollup/pull/1742))
5658
5659## 0.51.7
5660
5661_2017-11-17_
5662
5663- Keep "this"-context when calling sequence expressions ([#1724](https://github.com/rollup/rollup/pull/1724))
5664
5665## 0.51.6
5666
5667_2017-11-16_
5668
5669- Use sourcemaps to determine error locations ([#1728](https://github.com/rollup/rollup/pull/1728))
5670
5671## 0.51.5
5672
5673_2017-11-11_
5674
5675- Fix regressions with uninitialised conditional expressions ([#1720](https://github.com/rollup/rollup/pull/1720))
5676
5677## 0.51.4
5678
5679_2017-11-11_
5680
5681- Fix regressions preventing builds ([#1725](https://github.com/rollup/rollup/pull/1725))
5682
5683## 0.51.3
5684
5685_2017-11-10_
5686
5687- Fix regression when treeshaking sequence expressions ([#1717](https://github.com/rollup/rollup/pull/1717))
5688
5689## 0.51.2
5690
5691_2017-11-09_
5692
5693- Fix treeshaking regression when labels are used inside functions ([#1712](https://github.com/rollup/rollup/pull/1712))
5694
5695## 0.51.1
5696
5697_2017-11-08_
5698
5699- Fix an issue with empty return statements ([#1704](https://github.com/rollup/rollup/pull/1704))
5700
5701## 0.51.0
5702
5703_2017-11-08_
5704
5705- Massive improvements to the treeshaking algorithm ([#1667](https://github.com/rollup/rollup/pull/1667))
5706
5707## 0.50.1
5708
5709_2017-11-08_
5710
5711- Fix treeshaking regression ([#1695](https://github.com/rollup/rollup/pull/1695))
5712- Treeshaking improvements ([#1650](https://github.com/rollup/rollup/pull/1650))
5713- Enable installation from Github ([#1670](https://github.com/rollup/rollup/pull/1670))
5714- Update documentation ([#1660](https://github.com/rollup/rollup/pull/1660))
5715
5716## 0.50.0
5717
5718_2017-09-16_
5719
5720- Many treeshaking improvements ([#1624](https://github.com/rollup/rollup/pull/1624))
5721- Show finish time in watch mode ([#1620](https://github.com/rollup/rollup/pull/1620))
5722
5723## 0.49.3
5724
5725_2017-09-08_
5726
5727- Respect `watch` options ([#1596](https://github.com/rollup/rollup/issues/1596))
5728- Fix treeshaking regressions ([#1604](https://github.com/rollup/rollup/pull/1604))
5729- Allow `-o` to work with `output.format` ([#1606](https://github.com/rollup/rollup/pull/1606))
5730
5731## 0.49.2
5732
5733_2017-08-29_
5734
5735- Fix treeshaking regressions ([#1591](https://github.com/rollup/rollup/pull/1591))
5736
5737## 0.49.1
5738
5739_2017-08-28_
5740
5741- Fix treeshaking regressions ([#1586](https://github.com/rollup/rollup/pull/1586))
5742
5743## 0.49.0
5744
5745_2017-08-27_
5746
5747- Completely update the treeshaking algorithm ([#1582](https://github.com/rollup/rollup/pull/1582))
5748- Only flip screen buffer if appropriate ([#1574](https://github.com/rollup/rollup/pull/1574))
5749- Guard against two instances creating the same dir ([#1576](https://github.com/rollup/rollup/pull/1576))
5750
5751## 0.48.2
5752
5753- Paths is an output option ([#1569](https://github.com/rollup/rollup/pull/1569))
5754
5755## 0.48.1
5756
5757- Print deprecation warnings in watch mode, and fix options when watcher restarts ([#1568](https://github.com/rollup/rollup/pull/1568))
5758
5759## 0.48.0
5760
5761- Numerous changes to the `options` object and CLI arguments ([#1479](https://github.com/rollup/rollup/issues/1479)). See [this gist](https://gist.github.com/Rich-Harris/d472c50732dab03efeb37472b08a3f32) for a rundown.
5762
5763## 0.47.6
5764
5765- Set `process.env.ROLLUP_WATCH` _before_ loading config file
5766
5767## 0.47.5
5768
5769- Fix broken multi-bundle configs with `rollup.watch` ([#1532](https://github.com/rollup/rollup/issues/1532))
5770
5771## 0.47.4
5772
5773- Delete cached config file before reloading in watch mode
5774
5775## 0.47.3
5776
5777- Deshadow aliased imports ([#1550](https://github.com/rollup/rollup/issues/1550))
5778
5779## 0.47.2
5780
5781- Rebuild with dependency that npm randomly deleted
5782
5783## 0.47.1
5784
5785- Ignore external namespace imports when deshadowing ([#1547](https://github.com/rollup/rollup/issues/1547))
5786
5787## 0.47.0
5788
5789- Watch config file, restart `rollup.watch` on change ([#1535](https://github.com/rollup/rollup/issues/1535))
5790- Correctly render `export { foo } from` declarations in `es` output ([#1543](https://github.com/rollup/rollup/pull/1543))
5791- Reinstate missing `rollup.VERSION`
5792
5793## 0.46.3
5794
5795- init for/for-of loop section head with correct scopes ([#1538](https://github.com/rollup/rollup/issues/1538), [#1539](https://github.com/rollup/rollup/issues/1539))
5796- Fix namespace imports and re-exports in `es` output ([#1511](https://github.com/rollup/rollup/issues/1511))
5797- Deshadow indirectly imported namespaces ([#1488](https://github.com/rollup/rollup/issues/1488), [#1505](https://github.com/rollup/rollup/issues/1505))
5798
5799## 0.46.2
5800
5801- Pass options to `bundle.write` correctly in `rollup.watch` ([#1533](https://github.com/rollup/rollup/issues/1533))
5802- init for-in loop section head with correct scopes ([#1480](https://github.com/rollup/rollup/issues/1480))
5803- support `--no-interop` flag ([#1524](https://github.com/rollup/rollup/issues/1524))
5804
5805## 0.46.1
5806
5807- Remove `rollup.watch` from browser build ([#1530](https://github.com/rollup/rollup/issues/1530))
5808- Remove `source-map-support` dependency ([#1528](https://github.com/rollup/rollup/issues/1528))
5809
5810## 0.46.0
5811
5812- `options.format` is now required ([#1491](https://github.com/rollup/rollup/pull/1491))
5813- if `options.format` is `es6`, it will now throw an error (should be `es`) ([#1491](https://github.com/rollup/rollup/pull/1491))
5814- Add experimental `rollup.watch` method, replacing [rollup-watch](https://github.com/rollup/rollup-watch) ([#1491](https://github.com/rollup/rollup/pull/1491))
5815- Batch warnings together in CLI output ([#1491](https://github.com/rollup/rollup/pull/1491))
5816- Clear screen between rebuilds in `--watch` mode ([#1491](https://github.com/rollup/rollup/pull/1491))
5817- `onwarn` function's second argument is the default handler, allowing easier filtering without reimplementing any logic ([#1491](https://github.com/rollup/rollup/pull/1491))
5818- Prevent semi-colon removal after variable declaration that is for loop body ([#1275](https://github.com/rollup/rollup/issues/1275))
5819- Return `exports` for namespaced but non-extended IIFE bundles ([#1492](https://github.com/rollup/rollup/issues/1492))
5820- Fix scoping in switch statements ([#1498](https://github.com/rollup/rollup/pull/1498))
5821- Handle side-effects in tagged template expressions ([#1508](https://github.com/rollup/rollup/pull/1508))
5822- More descriptive error for missing options.format ([#1510](https://github.com/rollup/rollup/pull/1510))
5823- Refactor scope handling ([#1517](https://github.com/rollup/rollup/pull/1517))
5824- Handle failure of a config in multi-config build ([#1513](https://github.com/rollup/rollup/issues/1513))
5825
5826## 0.45.2
5827
5828- Fix interop when import is a string ([#1486](https://github.com/rollup/rollup/issues/1486))
5829- Separate `resolvedIds` from `resolvedExternalIds` ([#1490](https://github.com/rollup/rollup/pull/1490))
5830- Add `--extend` flag to CLI ([#1482](https://github.com/rollup/rollup/pull/1482))
5831
5832## 0.45.1
5833
5834- Remove `weak` from `optionalDependencies` ([#1483](https://github.com/rollup/rollup/issues/1483))
5835
5836## 0.45.0
5837
5838- [BREAKING] `bundle.generate(...)` returns a Promise, so that `transformBundle` plugin hooks can be asynchronous ([#1474](https://github.com/rollup/rollup/issues/1474))
5839
5840## 0.44.0
5841
5842- [BREAKING] Don't extend existing globals, unless `options.extend` is true ([#827](https://github.com/rollup/rollup/issues/827))
5843- Fix handling of catch clause parameters ([#1462](https://github.com/rollup/rollup/issues/1462))
5844
5845## 0.43.1
5846
5847- Fix memory leak on incremental rebuilds ([#883](https://github.com/rollup/rollup/issues/883))
5848- Allow `this.warn` and `this.error` to accept a `{line, column}` object as an alternative to a character index ([#1265](https://github.com/rollup/rollup/issues/1265))
5849- Print more useful error if entry module is 'external' ([#1264](https://github.com/rollup/rollup/issues/1264))
5850- Catch errors in `bundle.generate` options ([#1463](https://github.com/rollup/rollup/pull/1463))
5851- Fix magic-string deprecation warning ([#1445](https://github.com/rollup/rollup/pull/1445))
5852
5853## 0.43.0
5854
5855- Allow config files to import JSON ([#1426](https://github.com/rollup/rollup/issues/1426))
5856- Allow undefined imports in interop block ([#1341](https://github.com/rollup/rollup/issues/1341))
5857- Add `process.env.ROLLUP_WATCH = 'true'` in watch mode ([#1429](https://github.com/rollup/rollup/issues/1429))
5858- Add `pureExternalModules` option ([#1352](https://github.com/rollup/rollup/issues/1352))
5859- Allow plugins to specify `options.entry` ([#1270](https://github.com/rollup/rollup/issues/1270))
5860- Update dependencies
5861
5862## 0.42.0
5863
5864- Deprecate `options.moduleId` in favour of `options.amd.id` ([#1365](https://github.com/rollup/rollup/pull/1365))
5865- Add `options.amd.define` option to specify name of AMD `define` function ([#1365](https://github.com/rollup/rollup/pull/1365))
5866- Fix incorrect class removal with `treeshake: false` ([#1375](https://github.com/rollup/rollup/pull/1375))
5867- Deconflict module exports imported as namespaces ([#1384](https://github.com/rollup/rollup/issues/1384))
5868- Handle bare self-imports ([#1274](https://github.com/rollup/rollup/issues/1274))
5869- Allow config file to export an array of multiple configs ([#1389](https://github.com/rollup/rollup/pull/1389))
5870- Handle exponentiation operator, and fail gracefully on unknown operators ([#1416](https://github.com/rollup/rollup/issues/1416))
5871- Add `watch` option ([#1424](https://github.com/rollup/rollup/pull/1424))
5872
5873## 0.41.6
5874
5875- Preserve `originalSourceMap` on incremental rebuilds for loaders with sourcemaps ([#1336](https://github.com/rollup/rollup/issues/1336))
5876
5877## 0.41.5
5878
5879- Wrap ternary consequent/alternate sequences in parens ([#1273](https://github.com/rollup/rollup/issues/1273))
5880- Fix erroneous warning on multiple `export * from` declarations with defaults ([#1278](https://github.com/rollup/rollup/issues/1278))
5881- Prevent variable conflicts with `treeshake: false` ([#1268](https://github.com/rollup/rollup/issues/1268))
5882- Allow missing `source` when collapsing sourcemaps ([#1254](https://github.com/rollup/rollup/issues/1254))
5883- Allow plugins to log with strings ([#1316](https://github.com/rollup/rollup/pull/1316))
5884
5885## 0.41.4
5886
5887- Fix cases of multiple `export * from 'external'` declarations ([#1252](https://github.com/rollup/rollup/issues/1252))
5888- Fix 'TODO' error message ([#1257](https://github.com/rollup/rollup/issues/1257))
5889
5890## 0.41.3
5891
5892- Don't treat `this.foo` as possible namespace ([#1258](https://github.com/rollup/rollup/issues/1258))
5893
5894## 0.41.2
5895
5896- Optimize `namespace['foo']` references ([#1240](https://github.com/rollup/rollup/pull/1240))
5897
5898## 0.41.1
5899
5900- Include `new` expressions where callee is a class with side-effects ([#980](https://github.com/rollup/rollup/issues/980) [#1233](https://github.com/rollup/rollup/issues/1233))
5901
5902## 0.41.0
5903
5904- Add `this.warn(...)` and `this.error(...)` methods to plugin `transform` hook contexts ([#1140](https://github.com/rollup/rollup/issues/1140))
5905- `throw` always considered to be a side effect ([#1227](https://github.com/rollup/rollup/pull/1227))
5906
5907## 0.40.2
5908
5909- Add `file` property to sourcemaps for bundles with plugins ([#986](https://github.com/rollup/rollup/issues/986))
5910- Don't require globals for empty imports ([#1217](https://github.com/rollup/rollup/issues/1217))
5911
5912## 0.40.1
5913
5914- Allow missing space between `export default` and declaration ([#1218](https://github.com/rollup/rollup/pull/1218))
5915
5916## 0.40.0
5917
5918- [BREAKING] Better, more consistent error logging ([#1212](https://github.com/rollup/rollup/pull/1212))
5919- Don't use colours and emojis for non-TTY stderr ([#1201](https://github.com/rollup/rollup/issues/1201))
5920
5921## 0.39.2
5922
5923- Prevent mutation of cached ASTs (fixes stack overflow with rollup-watch) ([#1205](https://github.com/rollup/rollup/pull/1205))
5924
5925## 0.39.1
5926
5927- Ignore `var` initialisers in dead branches ([#1198](https://github.com/rollup/rollup/issues/1198))
5928
5929## 0.39.0
5930
5931- [BREAKING] Warnings are objects, rather than strings ([#1194](https://github.com/rollup/rollup/issues/1194))
5932
5933## 0.38.3
5934
5935- More informative warning for implicit external dependencies ([#1051](https://github.com/rollup/rollup/issues/1051))
5936- Warn when creating browser bundle with external dependencies on Node built-ins ([#1051](https://github.com/rollup/rollup/issues/1051))
5937- Statically analyse LogicalExpression nodes, for better dead code removal ([#1061](https://github.com/rollup/rollup/issues/1061))
5938
5939## 0.38.2
5940
5941- Preserve `var` declarations in dead branches ([#997](https://github.com/rollup/rollup/issues/997))
5942- Warn if exporting a call expression that looks like a function declaration ([#1011](https://github.com/rollup/rollup/issues/1011))
5943- Wrap function expressions in parentheses if necessary ([#1011](https://github.com/rollup/rollup/issues/1011))
5944
5945## 0.38.1
5946
5947- Fix sourcemap comment removal ([#1104](https://github.com/rollup/rollup/issues/1104))
5948- Warn if empty bundle is generated ([#444](https://github.com/rollup/rollup/issues/444))
5949- Support ES2017 syntax ([#492](https://github.com/rollup/rollup/issues/492))
5950- Remove unused imports from external modules ([#595](https://github.com/rollup/rollup/issues/595))
5951- Remove unused function and class declarations inside function bodies ([#1108](https://github.com/rollup/rollup/issues/1108), [#1178](https://github.com/rollup/rollup/issues/1178))
5952- Deconflict function expression IDs ([#1176](https://github.com/rollup/rollup/issues/1176))
5953
5954## 0.38.0
5955
5956- [BREAKING] `export { foo as default }` creates live binding ([#1078](https://github.com/rollup/rollup/issues/1078))
5957- Prevent sourceMappingURL removal edge case ([#988](https://github.com/rollup/rollup/issues/988))
5958- Bind function expression IDs to the correct scope ([#1083](https://github.com/rollup/rollup/issues/1083))
5959- Correctly deshadow destructured parameters with assignments ([#1008](https://github.com/rollup/rollup/issues/1008))
5960
5961## 0.37.2
5962
5963- Remove unused `new` expressions without side-effects ([#179](https://github.com/rollup/rollup/issues/179))
5964- Only remove valid sourceMappingURL comments ([#1132](https://github.com/rollup/rollup/issues/1132))
5965- Ensure blocks containing activated `var` declarations are included in output ([#1113](https://github.com/rollup/rollup/issues/1113))
5966- Support plugin outros ([#1116](https://github.com/rollup/rollup/issues/1116))
5967
5968## 0.37.1
5969
5970- Follow symlinks ([#447](https://github.com/rollup/rollup/issues/447))
5971- Fix tree-shaking of recursive functions and other cases ([#1120](https://github.com/rollup/rollup/issues/1120), [#1142](https://github.com/rollup/rollup/issues/1142))
5972- Support module names that require quotes ([#582](https://github.com/rollup/rollup/issues/582), [#584](https://github.com/rollup/rollup/issues/584))
5973- Fix [#957](https://github.com/rollup/rollup/issues/957)
5974
5975## 0.37.0
5976
5977- [BREAKING] Default exports are not included in reified namespaces ([#1028](https://github.com/rollup/rollup/issues/1028))
5978- Parentheses do not defeat tree-shaking ([#1101](https://github.com/rollup/rollup/issues/1101), [#1128](https://github.com/rollup/rollup/issues/1128))
5979- More `legacy` fixes: do not create getters ([#1069](https://github.com/rollup/rollup/pull/1069)), do not include `__esModule` ([#1068](https://github.com/rollup/rollup/pull/1068)), quote reserved property names ([#1057](https://github.com/rollup/rollup/pull/1057))
5980- Fix missing namespace member warnings ([#1045](https://github.com/rollup/rollup/issues/1045))
5981- Fix TypeError in arrow function without braces returning a function ([#1062](https://github.com/rollup/rollup/pull/1062))
5982
5983## 0.36.4
5984
5985- Only depend on program-level call expressions ([#977](https://github.com/rollup/rollup/issues/977))
5986
5987## 0.36.3
5988
5989- Add `legacy` option for IE8 support ([#989](https://github.com/rollup/rollup/pull/989))
5990
5991## 0.36.2
5992
5993- Insert semicolons where necessary to fix broken code ([#1004](https://github.com/rollup/rollup/issues/1004))
5994- Include module ID and location when warning about top-level `this` ([#1012](https://github.com/rollup/rollup/pull/1012))
5995- More informative error for missing exports ([#1033](https://github.com/rollup/rollup/issues/1033))
5996- `options.moduleContext` for per-module context overrides ([#1023](https://github.com/rollup/rollup/pull/1023))
5997
5998## 0.36.1
5999
6000- Include naked block statements ([#981](https://github.com/rollup/rollup/issues/981))
6001- Correctly include falsy alternate statements in optimised if blocks ([#973](https://github.com/rollup/rollup/issues/973))
6002- Prevent omission of default exports that are only used by the exporting module ([#967](https://github.com/rollup/rollup/pull/967))
6003- Prevent warning on `auto` exports with ES output ([#966](https://github.com/rollup/rollup/pull/966))
6004
6005## 0.36.0
6006
6007- `export { foo as default }` no longer creates a live binding ([#860](https://github.com/rollup/rollup/issues/860))
6008
6009## 0.35.15
6010
6011- Warn on missing unused imports in deshadowing phase ([#928](https://github.com/rollup/rollup/issues/928))
6012- Always add a newline to the end of bundles ([#958](https://github.com/rollup/rollup/issues/958))
6013
6014## 0.35.14
6015
6016- Include all parent statements of expression with effects, up to function boundary ([#930](https://github.com/rollup/rollup/issues/930))
6017
6018## 0.35.13
6019
6020- Include superclasses when including their subclasses ([#932](https://github.com/rollup/rollup/issues/932))
6021
6022## 0.35.12
6023
6024- Add `interop: false` option to disable unwrapping of external imports ([#939](https://github.com/rollup/rollup/issues/939))
6025
6026## 0.35.11
6027
6028- Deconflict reified namespaces with other declarations ([#910](https://github.com/rollup/rollup/issues/910))
6029
6030## 0.35.10
6031
6032- Only remove EmptyStatement nodes directly inside blocks ([#913](https://github.com/rollup/rollup/issues/931))
6033
6034## 0.35.9
6035
6036- Support Node 0.12 ([#909](https://github.com/rollup/rollup/issues/909))
6037
6038## 0.35.8
6039
6040- Correctly deshadow re-assigned module functions ([#910](https://github.com/rollup/rollup/issues/910))
6041
6042## 0.35.7
6043
6044- Refactor `flushTime.js` ([#922](https://github.com/rollup/rollup/pull/922))
6045
6046## 0.35.6
6047
6048- Fix browser build
6049
6050## 0.35.5
6051
6052- Allow empty for loop heads ([#919](https://github.com/rollup/rollup/issues/919))
6053
6054## 0.35.4
6055
6056- Preserve effects in for-of and for-in loops ([#870](https://github.com/rollup/rollup/issues/870))
6057- Remove empty statements ([#918](https://github.com/rollup/rollup/pull/918))
6058
6059## 0.35.3
6060
6061- Render identifiers inside template literals
6062
6063## 0.35.2
6064
6065- Fix broken build caused by out of date locally installed dependencies
6066
6067## 0.35.1
6068
6069- Rewrite deconflicted class identifiers ([#915](https://github.com/rollup/rollup/pull/915))
6070- Include `dependencies` in `bundle.modules` objects ([#903](https://github.com/rollup/rollup/issues/903))
6071- Update to Acorn 4 ([#914](https://github.com/rollup/rollup/pull/914))
6072
6073## 0.35.0
6074
6075- Rewrite analysis/tree-shaking code ([#902](https://github.com/rollup/rollup/pull/902))
6076- Include conditional mutations of global objects ([#901](https://github.com/rollup/rollup/issues/901))
6077- Only reify namespaces if necessary ([#898](https://github.com/rollup/rollup/issues/898))
6078- Track mutations of aliased globals ([#893](https://github.com/rollup/rollup/issues/893))
6079- Include duplicated var declarations ([#716](https://github.com/rollup/rollup/issues/716))
6080
6081## 0.34.13
6082
6083- Pass `{ format }` through to `transformBundle` ([#867](https://github.com/rollup/rollup/issues/867))
6084
6085## 0.34.12
6086
6087- Fix `rollup --watch` ([#887](https://github.com/rollup/rollup/issues/887))
6088- Case-sensitive paths ([#862](https://github.com/rollup/rollup/issues/862))
6089
6090## 0.34.11
6091
6092- Prevent leaky state when `bundle` is reused ([#875](https://github.com/rollup/rollup/issues/875))
6093- Ensure `intro` appears before interop block ([#880](https://github.com/rollup/rollup/issues/880))
6094
6095## 0.34.10
6096
6097- Allow custom `options.context` to replace top-level `this` ([#851](https://github.com/rollup/rollup/issues/851))
6098- Fix `noConflict` when used via `rollup --config` ([#846](https://github.com/rollup/rollup/issues/846))
6099- Place `outro` block _after_ export block ([#852](https://github.com/rollup/rollup/issues/852))
6100
6101## 0.34.9
6102
6103- Disable indentation by default, for faster bundle generation ([#812](https://github.com/rollup/rollup/pull/812))
6104- More helpful error on missing entry file ([#802](https://github.com/rollup/rollup/issues/802))
6105- Preserve comments before import declarations ([#815](https://github.com/rollup/rollup/pull/815))
6106
6107## 0.34.8
6108
6109- Wrap UMD factory function in parens to avoid lazy parsing ([#774](https://github.com/rollup/rollup/pull/774))
6110
6111## 0.34.7
6112
6113- Leave it up to resolveId to normalize the entry path ([#835](https://github.com/rollup/rollup/pull/835))
6114- Cache decoded mappings ([#834](https://github.com/rollup/rollup/pull/834))
6115
6116## 0.34.5
6117
6118- Fix circular export ([#813](https://github.com/rollup/rollup/issues/813))
6119
6120## 0.34.4
6121
6122- Module render performance tweak ([#823](https://github.com/rollup/rollup/pull/823))
6123
6124## 0.34.3
6125
6126- Avoid infinite recursion in `Bundle.sort()` ([#800](https://github.com/rollup/rollup/pull/800))
6127
6128## 0.34.2
6129
6130- resolveId calls are cached now to improve incremental build
6131- Fixed error message recursion in plugins
6132
6133## 0.34.1
6134
6135- Support `paths` config ([#754](https://github.com/rollup/rollup/issues/754))
6136- Allow `export *` from external module, internally
6137
6138## 0.34.0
6139
6140- Use resolved IDs for relative imports that are also external modules, to allow `options.globals` to work with them ([#763](https://github.com/rollup/rollup/issues/763))
6141- Ensure reassigned exports are declared in an ES bundle, and remove empty `exports.foo;` statements ([#755](https://github.com/rollup/rollup/issues/755))
6142- Add newline after sourcemap comment ([#756](https://github.com/rollup/rollup/issues/756))
6143
6144## 0.33.2
6145
6146- Add `bundle` as second argument to `ongenerate` and `onwrite` hooks ([#773](https://github.com/rollup/rollup/pull/773))
6147- Warn on top-level `this` ([#770](https://github.com/rollup/rollup/issues/770))
6148
6149## 0.33.1
6150
6151- Fix `--no-strict` option ([#751](https://github.com/rollup/rollup/pull/751))
6152- Fix Windows edge case with case-sensitive paths ([#760](https://github.com/rollup/rollup/pull/760))
6153
6154## 0.33.0
6155
6156- Downgrade missing transformer sourcemap to a warning, not an error, and print the name of the offending plugin if possible ([#746](https://github.com/rollup/rollup/issues/746))
6157- Warn if same name is re-exported from two modules ([#722](https://github.com/rollup/rollup/issues/722))
6158
6159## 0.32.4
6160
6161- Add `ongenerate` and `onwrite` plugin hooks ([#742](https://github.com/rollup/rollup/pull/742))
6162
6163## 0.32.3
6164
6165- Generated correct sourcemaps with reified namespaces ([#668](https://github.com/rollup/rollup/issues/668))
6166- Exclude plugin helper modules from sourcemaps ([#747](https://github.com/rollup/rollup/pull/747))
6167
6168## 0.32.2
6169
6170- Allow `--globals` to work with `--external` or `options.external` in whatever configuration ([#743](https://github.com/rollup/rollup/issues/743))
6171
6172## 0.32.1
6173
6174- Preserve side-effects to default exports that coincide with used named exports ([#733](https://github.com/rollup/rollup/issues/733))
6175- Support `rollup -c node:pkgname` ([#736](https://github.com/rollup/rollup/issues/736))
6176
6177## 0.32.0
6178
6179- Deprecate `es6` format in favour of `es` ([#468](https://github.com/rollup/rollup/issues/468))
6180- Add correct `jsnext:main` build ([#726](https://github.com/rollup/rollup/pull/726))
6181
6182## 0.31.2
6183
6184- Allow `load` plugins to provide sourcemap ([#715](https://github.com/rollup/rollup/pull/715))
6185- Allow `sourceMapFile` in config options ([#717](https://github.com/rollup/rollup/issues/717))
6186
6187## 0.31.1
6188
6189- Logging for errors emitted by `rollup-watch` ([#712](https://github.com/rollup/rollup/issues/712))
6190
6191## 0.31.0
6192
6193- Rewrite top-level `this` as `undefined` ([#707](https://github.com/rollup/rollup/pull/707))
6194- Pass `options.acorn` to Acorn ([#564](https://github.com/rollup/rollup/issues/564))
6195
6196## 0.30.0
6197
6198- Bundle CLI ([#700](https://github.com/rollup/rollup/issues/700))
6199- Ensure absolute paths are normalised ([#704](https://github.com/rollup/rollup/issues/704))
6200- Allow `rollup --watch` to work with targets
6201
6202## 0.29.1
6203
6204- Merge `target` options with main options ([#701](https://github.com/rollup/rollup/issues/701))
6205- Update magic-string ([#690](https://github.com/rollup/rollup/issues/690))
6206
6207## 0.29.0
6208
6209- `rollup --watch` ([#284](https://github.com/rollup/rollup/issues/284))
6210
6211## 0.28.0
6212
6213- Experimental support for incremental rebuilds ([#658](https://github.com/rollup/rollup/pull/658))
6214
6215## 0.27.1
6216
6217- Ensure names exported from a module are not replaced with reserved words ([#696](https://github.com/rollup/rollup/pull/696))
6218- Revert ([#692](https://github.com/rollup/rollup/pull/692)) – resolved IDs must be strings
6219
6220## 0.27.0
6221
6222- Use native promises instead of `es6-promise` ([#689](https://github.com/rollup/rollup/issues/689))
6223- Support multiple targets in config files ([#655](https://github.com/rollup/rollup/issues/655))
6224- Allow `resolveId` plugin functions to return non-strings ([#692](https://github.com/rollup/rollup/pull/692))
6225
6226## 0.26.7
6227
6228- Distinguish between default and namespace imports of external module ([#637](https://github.com/rollup/rollup/issues/637))
6229- Add `__esModule` property to named exports in AMD, CJS and UMD modes ([#650](https://github.com/rollup/rollup/issues/650))
6230
6231## 0.26.6
6232
6233- Deconflict named imports from external modules in ES bundles ([#659](https://github.com/rollup/rollup/issues/659))
6234- Support `options.preferConst` to generate `const` declarations for exports rather than `var` declarations ([#653](https://github.com/rollup/rollup/issues/653))
6235
6236## 0.26.5
6237
6238- Preserve `debugger` statements ([#664](https://github.com/rollup/rollup/issues/664))
6239- Allow `options.external` to be a function ([#522](https://github.com/rollup/rollup/issues/522))
6240
6241## 0.26.4
6242
6243- Prevent plugin-provided external IDs being normalised ([#630](https://github.com/rollup/rollup/issues/630), [#633](https://github.com/rollup/rollup/issues/633))
6244- Throw if module exports/re-exports the same name twice, or has multiple default exports ([#679](https://github.com/rollup/rollup/issues/679))
6245- Warn about `eval` security issue ([#675](<(https://github.com/rollup/rollup/issues/675)>))
6246
6247## 0.26.3
6248
6249- Ensure reference is not incorrectly marked as a reassignment ([#648](https://github.com/rollup/rollup/issues/648))
6250
6251## 0.26.2
6252
6253- Sanity check output of `load` hook ([#607](https://github.com/rollup/rollup/issues/607))
6254- Correct scoping for ID class expressions ([#626](https://github.com/rollup/rollup/issues/626))
6255- Warn if named and default exports are used together in auto mode ([#587](https://github.com/rollup/rollup/issues/587))
6256- Allow variable initialisers to be rewritten if necessary ([#632](https://github.com/rollup/rollup/issues/632))
6257- Prevent double `var` with no-treeshake option ([#639](https://github.com/rollup/rollup/pull/639))
6258
6259## 0.26.1
6260
6261- Add `treeshake: false`/`--no-treeshake` option for debugging ([#505](https://github.com/rollup/rollup/issues/505))
6262- Update build process to use Bublé ([#620](https://github.com/rollup/rollup/pull/620))
6263
6264## 0.26.0
6265
6266- Add `noConflict`/`--no-conflict` option for UMD builds ([#580](https://github.com/rollup/rollup/pull/580))
6267- Normalise relative external paths ([#591](https://github.com/rollup/rollup/pull/591))
6268- Report files causing transform errors ([#609](https://github.com/rollup/rollup/pull/609))
6269- Handle sourcemap segments with a single member ([#619](https://github.com/rollup/rollup/pull/619))
6270- Update dependencies
6271
6272## 0.25.8
6273
6274- Unixize entry path ([#586](https://github.com/rollup/rollup/pull/586))
6275
6276## 0.25.7
6277
6278- Expand deshadowed shorthand properties ([#575](https://github.com/rollup/rollup/issues/575))
6279- Allow external files to be non-existent ([#532](https://github.com/rollup/rollup/issues/532))
6280
6281## 0.25.6
6282
6283- Fix a regression introduced by #566 ([#569](https://github.com/rollup/rollup/issues/569))
6284- Prune dead conditional expressions more carefully ([#567](https://github.com/rollup/rollup/issues/567))
6285
6286## 0.25.5
6287
6288- Make sure shorthand destructuring assignments don't break ([#528](https://github.com/rollup/rollup/issues/528))
6289- Allow 'exports' key ([#542](https://github.com/rollup/rollup/issues/542))
6290- Ensure `foo. bar` where `foo` is a namespace import is rewritten correctly ([#566](https://github.com/rollup/rollup/issues/566))
6291- Fix an edge case for exported globals (e.g. `export { document }`) ([#562](https://github.com/rollup/rollup/issues/562))
6292
6293## 0.25.4
6294
6295- Fix misnamed exports of default imports in ES bundles ([#513](https://github.com/rollup/rollup/issues/513))
6296- CLI: warn on missing config ([#515](https://github.com/rollup/rollup/pull/515))
6297- Detect side-effects in non-top-level member expression assignment ([#476](https://github.com/rollup/rollup/issues/476))
6298- Don't remove computed property class keys ([#504](https://github.com/rollup/rollup/issues/504))
6299- Augment existing global object rather than replacing ([#493](https://github.com/rollup/rollup/issues/493))
6300- Don't fail on `export {}`, warn instead ([#486](https://github.com/rollup/rollup/issues/486))
6301
6302## 0.25.3
6303
6304- Handle non-objects and `null` in `_interopDefault` ([#474](https://github.com/rollup/rollup/issues/474))
6305
6306## 0.25.2
6307
6308- Skip dead branches of a conditional expression (#[465](https://github.com/rollup/rollup/pull/465))
6309- Allow globals to be exported ([#472](https://github.com/rollup/rollup/pull/472))
6310- Ensure reassigned exports are exported ([#484](https://github.com/rollup/rollup/issues/484))
6311
6312## 0.25.1
6313
6314- Throw error if namespace is called ([#446](https://github.com/rollup/rollup/issues/446))
6315- Prevent shadowing bug in ES6 output ([#441](https://github.com/rollup/rollup/pull/441))
6316- Prevent `var exports.foo` ([#426](https://github.com/rollup/rollup/issues/426))
6317- Prevent double export of aliased symbols ([#438](https://github.com/rollup/rollup/issues/438))
6318- Provide more informative error if Rollup is used in-browser without appropriate `resolveId`/`load` hooks ([#275](https://github.com/rollup/rollup/issues/275))
6319- Use `_interopDefault` function to DRY out code with many external dependencies, in CommonJS output ([#458](https://github.com/rollup/rollup/pull/458))
6320
6321## 0.25.0
6322
6323- **breaking** Module order is determined according to spec, rather than in a way designed to prevent runtime errors. Rollup will warn if it detects runtime errors are likely ([#435](https://github.com/rollup/rollup/issues/435))
6324- Prevent overly aggressive tree-shaking with complex call expressions ([#440](https://github.com/rollup/rollup/issues/440))
6325
6326## 0.24.1
6327
6328- Handle calls to default exports other that are not function expressions or references to function declarations ([#421](https://github.com/rollup/rollup/issues/421))
6329- Ensure namespace blocks are created for chained imports ([#430](https://github.com/rollup/rollup/issues/430))
6330- Include references in computed property keys ([#434](https://github.com/rollup/rollup/issues/434))
6331- Use CLI `--external` option correctly ([#417](https://github.com/rollup/rollup/pull/417))
6332- Allow relative imports to be treated as external, if absolute paths are provided in `options.external` ([#410](https://github.com/rollup/rollup/issues/410))
6333- Make IIFE output adhere to Crockford style ([#415](https://github.com/rollup/rollup/pull/415))
6334
6335## 0.24.0
6336
6337- No longer attempts to resolve IDs in `options.external` ([#407](https://github.com/rollup/rollup/issues/407))
6338- Fix broken sourcemap resolution in cases where some modules are transformed and others aren't ([#404](https://github.com/rollup/rollup/issues/404))
6339
6340## 0.23.2
6341
6342- Ensure `dest` or `sourceMapFile` is resolved against CWD for purposes of sourcemap generation ([#344](https://github.com/rollup/rollup/issues/344))
6343- Support `banner`, `footer`, `intro` and `outro` options via CLI ([#330](https://github.com/rollup/rollup/issues/330))
6344- Allow `options.global` to be a function rather than an object, and warn on missing names ([#293](https://github.com/rollup/rollup/issues/293))
6345- Ensure side-effects are captured in cyclical call expressions ([#397](https://github.com/rollup/rollup/issues/397))
6346- Fix parse error with body-less arrow function expressions ([#403](https://github.com/rollup/rollup/issues/403))
6347
6348## 0.23.1
6349
6350- Reinstate missing fix from ([#392](https://github.com/rollup/rollup/pull/392))
6351
6352## 0.23.0
6353
6354- Add `bundleTransform` plugin hook and option ([#387](https://github.com/rollup/rollup/pull/387))
6355- Correctly store names in sourcemaps, regardless of transformers
6356- Add `--environment` option to CLI ([#388](https://github.com/rollup/rollup/pull/388))
6357- Handle destructuring in exports ([#374](https://github.com/rollup/rollup/issues/374))
6358- Fix UMD global exports bug introduced in 0.22.1 ([#392](https://github.com/rollup/rollup/pull/392))
6359
6360## 0.22.2
6361
6362- Prevent lost `var` keywords ([#390](https://github.com/rollup/rollup/issues/390))
6363
6364## 0.22.1
6365
6366- Update expected option keys ([#379](https://github.com/rollup/rollup/issues/379))
6367- Handle transformers that return stringified sourcemaps ([#377](https://github.com/rollup/rollup/issues/377))
6368- Automatically create missing namespaces if `moduleName` contains dots ([#378](https://github.com/rollup/rollup/issues/378))
6369- Ignore external dependency warnings coming from config file ([#333](https://github.com/rollup/rollup/issues/333))
6370- Update to latest magic-string for performance boost
6371
6372## 0.22.0
6373
6374- Duplicate warnings are squelched ([#362](https://github.com/rollup/rollup/issues/362))
6375- Plugins can manipulate or override the `options` object ([#371](https://github.com/rollup/rollup/pull/371))
6376
6377## 0.21.3
6378
6379- Validate option keys ([#348](https://github.com/rollup/rollup/pull/348))
6380- Allow namespaces imports to sit alongside named imports ([#355](https://github.com/rollup/rollup/issues/355))
6381- Count references inside destructured objects ([#364](https://github.com/rollup/rollup/issues/364))
6382- Preserve top-level `delete` statements ([#352](https://github.com/rollup/rollup/issues/352))
6383
6384## 0.21.2
6385
6386- Missing relative imports are an error, not a warning ([#321](https://github.com/rollup/rollup/issues/321))
6387- Fixed incorrectly renamed default exports in ES6 bundles ([#339](https://github.com/rollup/rollup/issues/339))
6388- Fixed infinite recursion bug ([#341](https://github.com/rollup/rollup/issues/341))
6389
6390## 0.21.1
6391
6392- Remove `aggressive: true` (was too aggressive) ([#309](https://github.com/rollup/rollup/pull/309))
6393- Handle top-level block statements ([#326](https://github.com/rollup/rollup/issues/326))
6394- Optimise namespaces with default exports ([#314](https://github.com/rollup/rollup/issues/314))
6395
6396## 0.21.0
6397
6398- Only include statements whose side-effects are relevant (i.e. contribute to exports or affect global state) ([#253](https://github.com/rollup/rollup/pull/253)) ([#253](https://github.com/rollup/rollup/pull/253))
6399- Exclude dead branches from analysis and inclusion ([#249](https://github.com/rollup/rollup/pull/249))
6400- Add `aggressive: true` option to eliminate all side-effects outside entry module
6401- More informative error when re-exporting non-existent binding ([#274](https://github.com/rollup/rollup/issues/274))
6402- Fix infinite recursion bug ([#291](https://github.com/rollup/rollup/issues/291))
6403- Log errors when using `rollup --config` ([#288](https://github.com/rollup/rollup/pull/288))
6404- Return rejected promises on startup instead of throwing error, if options are invalid ([#303](https://github.com/rollup/rollup/pull/303))
6405
6406## 0.20.5
6407
6408- Ensure re-exports don't create a local binding ([#270](https://github.com/rollup/rollup/pull/270))
6409
6410## 0.20.4
6411
6412- Check file exists at resolve time, to allow filenames with non-extension dots in them ([#250](https://github.com/rollup/rollup/pull/250))
6413- Import `Promise` where used, for Node 0.10 support ([#254](https://github.com/rollup/rollup/issues/254))
6414- Allow asynchronous transformer plugins ([#260](https://github.com/rollup/rollup/issues/260))
6415- Don't assume re-exported bindings are globals when deconflicting ([#267](https://github.com/rollup/rollup/issues/267))
6416
6417## 0.20.3
6418
6419- Fix bug where multiple `export *` declarations caused error ([#244](https://github.com/rollup/rollup/pulls/244))
6420- Missing namespace exports are a warning, not an error ([#244](https://github.com/rollup/rollup/pulls/244))
6421- Plugins can provide `banner` and `footer` options (string, or function that returns a string) ([#235](https://github.com/rollup/rollup/issues/235))
6422- Warn on encountering `eval` ([#186](https://github.com/rollup/rollup/issues/186))
6423
6424## 0.20.2
6425
6426- Handle errors in build config file
6427- More robust deconflicting, in cases where e.g. `foo$1` already exists
6428- Use Rollup CLI for own build process
6429
6430## 0.20.1
6431
6432- Support `--config` file to enable plugins with CLI ([#226](https://github.com/rollup/rollup/pulls/226))
6433- Prevent `default` being used as variable name ([#215](https://github.com/rollup/rollup/issues/215))
6434- Update deps
6435
6436## 0.20.0
6437
6438- Support for [plugins](https://github.com/rollup/rollup/wiki/Plugins) ([#207](https://github.com/rollup/rollup/pulls/207))
6439- BREAKING – `options.transform`, `options.load`, `options.resolveId`, `options.resolveExternal` and `options.external` are no longer supported, and should be handled by plugins. [More info](https://github.com/rollup/rollup/wiki/Plugins)
6440- BREAKING – the .js extension is only added if it looks like there's no extension, allowing e.g. `import data from 'data.json'` (with the appropriate transformer). For safety, always include the file extension – import `./foo.js`, not `./foo`
6441
6442## 0.19.2
6443
6444- Fix exporting namespaces to include all of their exports ([#204](https://github.com/rollup/rollup/issues/204))
6445- Namespace exotic objects are frozen to ensure that its properties cannot be modified, reconfigured, redefined or deleted ([#203](https://github.com/rollup/rollup/pulls/203))
6446- Fix `ReferenceError: Promise is not defined` in node v0.10 ([#189](https://github.com/rollup/rollup/issues/189))
6447
6448## 0.19.1
6449
6450- Fix `module.basename()` when used with custom `resolveId` function
6451- Use [rollup-babel](https://github.com/rollup/rollup-babel) to build self
6452- Exposed the version string through the API: `require( 'rollup' ).VERSION`
6453
6454## 0.19.0
6455
6456- **breaking** The `transform` option is no longer passed through to custom loaders. Loaders should only concern themselves with providing source code; transformation will _always_ take place
6457- `options.transform` functions can return a string, or a `{code, map, ast}` object. Where possible, sourcemap chains will be flattened ([#175](https://github.com/rollup/rollup/pull/175))
6458- `options.resolveId`, `options.resolveExternal` and `options.load` can each be a function or an array of functions. If an array, the first non-null/undefined return value is used. In both cases, failed resolution/loading will fall back to the defaults, unless an error is thrown. ([#174](https://github.com/rollup/rollup/pull/174))
6459- New `intro` and `outro` options – similar to `banner` and `footer` except inserted _inside_ any format-specific wrapper
6460- Multiple var declarations in an export block (e.g. `export let a = 1, b = 2`) are split up to facilitate tree-shaking ([#171](https://github.com/rollup/rollup/issues/171))
6461- More informative error when using a missing namespace property ([#169](https://github.com/rollup/rollup/pull/169))
6462- Update various dependencies
6463
6464## 0.18.5
6465
6466- Allow namespaces to be assigned to variables ([#168](https://github.com/rollup/rollup/issues/168))
6467- Promote `chalk` and `source-map-support` to `dependencies`, as they're used by the CLI ([#167](https://github.com/rollup/rollup/pull/167))
6468
6469## 0.18.4
6470
6471- Make external modules configurable (i.e. `external.config.foo = 'bar'`) without erroring
6472
6473## 0.18.3
6474
6475- Crop indent exclusion ranges to exclude enclosing quotes ([#166](https://github.com/rollup/rollup/issues/166))
6476
6477## 0.18.2
6478
6479- Include definitions of namespace members that are exported as defaults
6480
6481## 0.18.1
6482
6483- Include `acorn.parse` in bundle, remove `sander` from dependencies, simplify build
6484
6485## 0.18.0
6486
6487- Internal rewrite
6488- Reinstate statically-analysable namespace imports
6489- Avoid using getters in namespace blocks where possible ([#144](https://github.com/rollup/rollup/issues/144))
6490- Track variable aliases ([#96](https://github.com/rollup/rollup/issues/96))
6491- Prevent multiline strings being indented ([#164](https://github.com/rollup/rollup/issues/164))
6492
6493## 0.17.4
6494
6495- Allow imports from hidden directories (replay of [#133](https://github.com/rollup/rollup/issues/133))
6496
6497## 0.17.3
6498
6499- Handle parenthesised default exports ([#136](https://github.com/rollup/rollup/issues/136))
6500
6501## 0.17.2
6502
6503- Allow use of scoped npm packages ([#131](https://github.com/rollup/rollup/issues/131))
6504
6505## 0.17.1
6506
6507- Allow namespaces to be passed to a function ([#149](https://github.com/rollup/rollup/issues/149))
6508
6509## 0.17.0
6510
6511- Roll back to 0.15.0 and reapply subsequent fixes pending resolution of ([#132](https://github.com/rollup/rollup/issues/132)) and related issues
6512
6513## 0.16.4
6514
6515- Fix import paths with `.` ([#133](https://github.com/rollup/rollup/issues/133))
6516- Prevent sourceMappingURL confusion leading to broken sourcemap
6517- Add code coverage reporting [#130](https://github.com/rollup/rollup/pull/130))
6518- Add `modules` property to user-facing `bundle` – an array with `{id}` objects ([#128](https://github.com/rollup/rollup/issues/128))
6519
6520## 0.16.3
6521
6522- Prevent adjacent blocks of multiple var declarations causing magic-string failure ([#105](https://github.com/rollup/rollup/issues/105))
6523
6524## 0.16.2
6525
6526- Top-level function calls and assignments to globals are treated as side-effects, and always included
6527- Import files from subdirectories of external packages, e.g. `import mod from 'foo/sub/mod'` ([#126](https://github.com/rollup/rollup/issues/126))
6528
6529## 0.16.1
6530
6531- Handle assignment patterns, and destructured/rest parameters, when analysing scopes
6532- Fix bug preventing project from self-building (make base `Identifier` class markable)
6533
6534## 0.16.0
6535
6536- Internal refactoring ([#99](https://github.com/rollup/rollup/pull/99))
6537- Optimisation for statically-analysable namespace imports ([#99](https://github.com/rollup/rollup/pull/99))
6538- Windows support (theoretically!) ([#117](https://github.com/rollup/rollup/pull/117) / [#119](https://github.com/rollup/rollup/pull/119))
6539
6540## 0.15.0
6541
6542- Load all modules specified by `import` statements, and do tree-shaking synchronously once loading is complete. This results in simpler and faster code, and enables future improvements ([#97](https://github.com/rollup/rollup/pull/97))
6543- Only rewrite `foo` as `exports.foo` when it makes sense to ([#92](https://github.com/rollup/rollup/issues/92))
6544- Fix bug with shadowed variables that are eventually exported ([#91](https://github.com/rollup/rollup/issues/91))
6545- Exclude unused function declarations that happen to modify a used name ([#90](https://github.com/rollup/rollup/pull/90))
6546- Simplify internal `Scope` model – scopes always attach to blocks, never function expressions/declarations
6547
6548## 0.14.1
6549
6550- `export { name } from './other'` does not create a local binding ([#16](https://github.com/rollup/rollup/issues/16))
6551- A single binding can be exported under multiple names ([#18](https://github.com/rollup/rollup/issues/18))
6552- `useStrict` option exposed to CLI as `--strict`/`--no-strict` ([#81](https://github.com/rollup/rollup/issues/81))
6553- Neater exports from ES6 bundles
6554
6555## 0.14.0
6556
6557- Internal refactoring
6558- Correctly deconflict generated default export names ([#72](https://github.com/rollup/rollup/issues/72))
6559- Handle `export { x } from 'y'` declarations ([#74](https://github.com/rollup/rollup/issues/74))
6560- Dedupe named imports from external modules in ES6 bundles ([#77](https://github.com/rollup/rollup/issues/77))
6561
6562## 0.13.0
6563
6564- Support `banner` and `footer` options ([#66](https://github.com/rollup/rollup/pull/66))
6565- Remove pre-existing sourcemap comments ([#66](https://github.com/rollup/rollup/pull/66))
6566- Deconflict external imports ([#66](https://github.com/rollup/rollup/pull/66))
6567- Use existing AST, if provided ([#66](https://github.com/rollup/rollup/pull/66))
6568- Rename internal namespace exports as appropriate ([#66](https://github.com/rollup/rollup/pull/66))
6569- Remove uninitialised var declarations that get exported ([#66](https://github.com/rollup/rollup/pull/66))
6570- Rename variables named `exports` to avoid conflicts ([#66](https://github.com/rollup/rollup/pull/66))
6571
6572## 0.12.1
6573
6574- Don't attempt to mark statements belonging to external modules ([#68](https://github.com/rollup/rollup/issues/68))
6575- Correctly deshadow variables that conflict with imports ([#68](https://github.com/rollup/rollup/issues/68))
6576
6577## 0.12.0
6578
6579- Internal re-architecting, resulting in more efficient bundling with reduced memory usage
6580- Shorthand properties are expanded if necessary ([#61](https://github.com/rollup/rollup/issues/61))
6581- Fixed various bugs with bundle external dependencies, particularly when generating ES6 bundles ([#59](https://github.com/rollup/rollup/issues/59))
6582- Add `--globals` option to CLI ([#60](https://github.com/rollup/rollup/pull/60))
6583- Allow imports of external modules for side-effects ([#55](https://github.com/rollup/rollup/pull/55))
6584- Prevent Rollup hanging on non-existent external module ([#54](https://github.com/rollup/rollup/pull/54))
6585
6586## 0.11.4
6587
6588- Side-effect preservation applies to internal default exports ([#43](https://github.com/rollup/rollup/issues/43))
6589
6590## 0.11.3
6591
6592- Class methods are not incorrectly renamed ([#42](https://github.com/rollup/rollup/issues/42))
6593- External modules are assigned names before canonical names are determined ([#42](https://github.com/rollup/rollup/issues/42))
6594
6595## 0.11.2
6596
6597- Correctly handle computed properties (e.g. `foo[bar]`) when discovering dependencies ([#47](https://github.com/rollup/rollup/pull/47))
6598
6599## 0.11.1
6600
6601- Support for `export * from '..'` ([#46](https://github.com/rollup/rollup/pull/46))
6602
6603## 0.11.0
6604
6605- Experimental browser-friendly build (`dist/rollup.browser.js`) ([#25](https://github.com/rollup/rollup/issues/25))
6606- Internal re-architecting to make discovery process simpler and more performant
6607- Preservation of side-effects that happen in a separate module to the affected definition ([#39](https://github.com/rollup/rollup/issues/39))
6608
6609## 0.10.0
6610
6611- Better sorting algorithm – sorting happens at the module level, rather than the statement level. This avoids certain edge cases
6612- IIFEs are ignored for the purposes of distinguishing between 'strong' and 'weak' dependencies
6613- Empty `var` declarations for exported bindings are omitted
6614
6615## 0.9.1
6616
6617- Much faster statement insertion (fixes major 0.9.0 performance regression)
6618
6619## 0.9.0
6620
6621- BREAKING - `resolvePath` is now `resolveId`. The returned `id` (which by default is a filepath) is passed to the `load` function, which can optionally be overridden, and which is applied to all modules including the entry module. This allows custom resolver and loading logic for integration with third party systems (e.g. JSPM) or, eventually, in-browser usage ([#30](https://github.com/rollup/rollup/issues/30))
6622- A statement cannot appear after later statements from the same bundle ([#34](https://github.com/rollup/rollup/issues/34))
6623- Tricky cyclical dependencies are handled ([#36](https://github.com/rollup/rollup/issues/36))
6624- `sourcemap` option is used by CLI (was omitted previously)
6625
6626## 0.8.3
6627
6628- Correctly rename functions that have arguments with the same name ([#32](https://github.com/rollup/rollup/issues/32))
6629- Ensure unused default exports are given a legal name ([#33](https://github.com/rollup/rollup/issues/33))
6630
6631## 0.8.2
6632
6633- Support `moduleId` and `moduleName` via CLI ([#24](https://github.com/rollup/rollup/issues/24))
6634
6635## 0.8.1
6636
6637- Anonymous functions that are exported as default are converted to named function declarations for correct hoisting, rather than being bound to functions ([#29](https://github.com/rollup/rollup/issues/29))
6638- Automatically-generated default export names are deconflicted with local definitions ([#29](https://github.com/rollup/rollup/issues/29))
6639
6640## 0.8.0
6641
6642- Top-level variable declarations with multiple declarators are split up, to avoid unnecessary code importing and incorrectly-ordered statements ([#26](https://github.com/rollup/rollup/issues/26))
6643- `this` at the top level is `undefined` ([#28](https://github.com/rollup/rollup/issues/28))
6644
6645## 0.7.8
6646
6647- Avoid using `path.parse` - unsupported in node 0.10
6648
6649## 0.7.7
6650
6651- Promise `source-map-support` from `devDependencies` to `dependencies` ([#23](https://github.com/rollup/rollup/issues/23))
6652
6653## 0.7.6
6654
6655- Better placement of `export default` statements ([#21](https://github.com/rollup/rollup/issues/21))
6656- Prevent function calls and property assignments from being treated as rebinding for sake of unbound default exports
6657- Add `--external foo,bar,baz` option to CLI (equivalent to `external: ['foo', 'bar', 'baz']`)
6658- Add CLI tests
6659
6660## 0.7.5
6661
6662- Prevent accidental conflicts with the global namespace ([#20](https://github.com/rollup/rollup/issues/20))
6663
6664## 0.7.4
6665
6666- More precise statement re-ordering to satisfy `export default` constraint (fixes bug introduced in 0.7.3)
6667
6668## 0.7.3
6669
6670- Default exports are not bound. To enable this, statements within a module are sorted to retain their original order ([#15](https://github.com/rollup/rollup/issues/15))
6671- Better positioning of comments ([#14](https://github.com/rollup/rollup/issues/14))
6672- Various fixes to get Travis-CI rigged up
6673
6674## 0.7.2
6675
6676- Fix sourcemap paths on Windows ([#6](https://github.com/rollup/rollup/pull/6))
6677
6678## 0.7.1
6679
6680- Named functions can be used as default exports from a bundle
6681- Method calls are assumed to mutate the owner (i.e. `foo.bar()` mutates `foo`) ([#13](https://github.com/rollup/rollup/issues/13))
6682- `options.indent` can be used to control indentation of resulting bundle. `options.true` (default) means 'auto', `options.false` means empty string. Alternatively specify whitespace e.g. `' '` or `'\t'` ([#5](https://github.com/rollup/rollup/issues/5))
6683
6684## 0.7.0
6685
6686- Ensure statements are always separated by a newline ([#9](https://github.com/rollup/rollup/pull/9))
6687- Use CommonJS `exports` correctly (UMD exports)
6688- Throw error if `moduleName` is required but missing (UMD exports)
6689- Attach IIFE global to `this` rather than `window`
6690- Allow names inside bundle to the the names of `Object.prototype` properties ([#12](https://github.com/rollup/rollup/pull/12))
6691- Keep exports live ([#11](https://github.com/rollup/rollup/pull/11))
6692
6693## 0.6.5
6694
6695- Add sourceMappingURL comment to code, as appropriate
6696- Higher resolution sourcemaps
6697
6698## 0.6.4
6699
6700- Fix CJS bundling with default export
6701
6702## 0.6.3
6703
6704- Fix exports and external module imports with some output formats
6705- Fix endless cycle bug on Windows ([#3](https://github.com/rollup/rollup/pull/3)) - thanks @Bobris
6706
6707## 0.6.2
6708
6709- Permit assignments to properties of imported bindings
6710
6711## 0.6.1
6712
6713- Support for basic transformers
6714
6715## 0.6.0
6716
6717- BREAKING - `rollup.rollup` and `bundle.write` both take a single options argument
6718- BREAKING - external modules must be declared upfront with `options.external: [...]`
6719- Non-relative module paths will be resolved by looking for `jsnext:main` fields in the appropriate `package.json` files. This behaviour can be overridden by passing an alternative `resolveExternal` function
6720- Fix sourcemap options
6721- Include CLI files in npm package (duh)
6722
6723## 0.5.0
6724
6725- Command line interface
6726- Sourcemap generation
6727- Correct behaviour with `export { x as y } from 'z'`
6728
6729## 0.4.1
6730
6731- More import name deconflicting
6732
6733## 0.4.0
6734
6735- Self-hosting! `rollup.rollup` now rolls up rollup
6736- Fix bug with comments inside a statement later being appended to it
6737- Prevent shadowing of external modules
6738- Rewrite computed property identifiers where necessary
6739- Preserve original statement order where possible
6740- Internal refactoring
6741
6742## 0.3.1
6743
6744- Saner deconflicting
6745- Rename namespace imports from external modules correctly
6746
6747## 0.3.0
6748
6749- Basic functionality present, mostly spec-compliant
6750
6751## 0.2.1
6752
6753- Include dist files in npm package (duh)
6754
6755## 0.2.0
6756
6757- First release capable of doing anything useful
6758- Still lots of basic functionality missing
6759
6760## 0.1.0
6761
6762- Initial experiment