UNPKG

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