UNPKG

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