UNPKG

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