2020-03-06
2020-02-28
--plugin <plugin>
(#3379)2020-02-14
2020-01-31
2020-01-27
2020-01-27
hoistTransitiveImports
option to disable hoisting imports of static dependencies into entry chunks (#3353)2020-01-21
2020-01-08
2020-01-04
types
in tsconfig file (@tjenkinson)2019-12-22
2019-12-14
--environment
option (#3283)2019-12-13
import.meta
(#3282)import.meta
is accessed directly (@lukastaegert)2019-12-12
2019-12-11
2019-12-07
2019-12-02
2019-12-01
2019-11-30
2019-11-25
2019-11-22
2019-11-20
2019-11-18
+=
in SystemJS (#3242)2019-11-18
acornOptions
optional in parse()
in docs (@tjenkinson)2019-11-12
2019-11-11
2019-11-09
2019-11-02
undefined
in an unused named export (@lukastaegert)2019-10-31
treeshake: false
and star re-exports (#3209)2019-10-31
2019-10-27
2019-10-23
rollup.rollup
(#3184)2019-10-20
2019-10-18
2019-10-15
break
, continue
, return
and throw
when tree-shaking to detect dead code (#3153)import.meta
properties produce valid code in SystemJS (#3152)treeshake.annotations: false
is respected for class instantiation (#3153)2019-10-05
2019-10-03
2019-09-29
namespaceToStringTag: true
(#3135)--context
is observed as a CLI option (#3134)2019-09-16
2019-09-14
2019-09-09
this.emitFile
instead of this.emitAsset
2019-09-09
2019-09-08
output.entryFileNames
when preserving modules (#3088)treeshake.unknownGlobalSideEffects
(#3068)type
to more easily distinguish chunks and assets in the output bundle (#3080)output.strict
is respected for SystemJS output (#3101)2019-08-28
2019-08-25
2019-08-22
2019-08-21
2019-08-07
2019-08-06
2019-08-05
2019-08-05
2019-08-05
2019-08-01
externalLiveBindings: false
option to optimize code when live bindings are not needed (#3010)2019-07-15
2019-07-09
2019-07-04
2019-07-04
2019-07-02
2019-06-29
2019-06-22
2019-06-21
2019-06-21
2019-06-16
2019-06-14
renderedLength === 0
is a reliable check (#2940)null
from resolveId
(#2941)2019-06-14
2019-06-13
2019-06-13
2019-06-11
2019-06-11
'' + variable'
type coercion as expression statement for feature detection (#2917)2019-06-10
2019-06-09
2019-06-07
moduleSideEffects: false
(#2905)2019-06-06
2019-06-05
2019-06-05
await
expressions were not included properly (#2899)2019-06-05
2019-06-01
2019-05-31
exports
and module
from SystemJS wrapper if possible (#2880)2019-05-30
2019-05-27
2019-05-19
2019-05-17
2019-05-16
2019-05-15
treeshake.moduleSideEffects
option to allow removing empty imports without a side-effect check (#2844)this.resolve
plugin context function with an option to skip the resolveId
hook of the calling plugin (#2844)isEntry
flag to this.getModuleInfo
plugin context function (#2844)2019-05-05
2019-05-04
2019-05-04
2019-05-03
emitChunk
plugin context function to emit additional entry chunks that can be referenced from the code (#2809)manualChunks
to be a function (#2831).js
extensions in AMD imports to make sure an AMD baseUrl
would work (#2809)resolveFileUrl
plugin hook to replace resolveAssetUrl
and handle emitted chunks as well (#2809)resolve
plugin hook to replace resolveId
and isExternal
that returns an object (#2829)resolveDynamicImport
to return an {id, external}
object to also resolve unresolvable dynamic imports to a module (#2829)string | null
from this.resolveId
even if some resolveId
hooks return objects (#2829)resolveDynamicImport
resolves to a non-external module that does not exist (#2829)generateBundle
documentation (@lukastaegert)2019-04-19
2019-04-11
import.meta.url
(#2785)import.meta
(#2785)2019-04-10
2019-04-10
output.file
with output.dir
in the outputOptions
hook (#2802)2019-04-10
2019-04-05
2019-04-02
module
as alias for esm
and commonjs
for cjs
to match Node (#2783)2019-03-28
2019-03-24
2019-03-24
2019-03-24
2019-03-20
2019-03-20
2019-03-08
2019-03-07
2019-03-07
2019-03-04
2019-03-01
2019-03-01
2019-02-27
2019-02-27
2019-02-26
@__PURE__
annotations (#2429)2019-02-26
2019-02-26
2019-02-23
2019-02-19
paths
options only for some outputs (#2706)2019-02-17
2019-02-17
RollupOutput.output
to guarantee at least one chunk (#2679)RollupOutput.output
(@MattiasBuelens)2019-01-21
undefined
entries in the bundle information (#2663)2019-01-19
this.setAssetSource
in docs (@everdimension)[extname]
and [ext]
in docs (@tivac)2019-01-09
this.meta
available from the options
plugin hook (#2642)writeBundle
plugin hook that is called after all files have been written (#2643)acorn
import of the bundled non-ESM acorn plugins is correctly translated to ESM (#2636)buildStart
hook (#2642)2019-01-05
this.addWatchFile
and make sure it also declares transform dependencies (@lukastaegert)code
is optional in warning type (@lukastaegert)2019-01-03
RollupOptions
type (#2622){exports: named, interop: true}
options (@Andarist)2018-12-28
bundle.generate
and bundle.write
now return a new format (#2293)this.addWatchFile
plugin context function (#2409)this.watcher
in plugin hooks is deprecated in favour of the watchChange
plugin hook and the this.addWatchFile
plugin context function (#2409)inlineDynamicImports
is used (#2293)--dir
ClI option can now be aliased as -d
(#2293)--input
option now supports named entry points via =
(#2293)--input
option as well as the default CLI option now support named inputs (#2293)2018-12-23
2018-12-19
2018-12-16
optimizeChunks
is renamed to experimentalOptimizeChunks
to reflect this feature is not production-ready yet (#2575)this.moduleIds
(#2565)this.getModuleInfo(id)
(#2565)dynamicImports
, facadeModuleId
, isDynamicEntry
, name
(#2575)entryFileNames
but the chunkFileNames
property reflecting those are solely internally used (#2575)isEntry
(#2575)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)rollup-plugin-multi-entry
compatible with code-splitting and thus the upcoming 1.0 version (#2590)self
before this
when determining the global variable (#2594)facaded
chunk (#2575)preserveModules
now handles dynamic namespace imports (#2584)optimizeChunks
experimental (@lukastaegert)2018-12-03
2018-11-17
inlineDynamicImports
with experimentalPreserveModules
(#2560)inlineDynamicImports
with experimentalPreserveModules
(@clarkdo)2018-11-17
renderChunk
plugin hook (#2558)2018-11-11
2018-11-04
none
output.sourcemapExcludeSources
option to exclude the actual sources from sourcemaps (#2531)sourcemapExcludeSources
option to exclude the source content from sourcemaps (@kitsonk)2018-10-10
2018-10-09
2018-10-04
2018-10-03
2018-09-21
2018-09-19
2018-09-16
2018-09-05
2018-09-05
2018-08-25
renderChunk
hook to replace transformChunk
and transformBundle
hooks (#2406)[format]
placeholder for id generation (#2387)\0
as external (#2400)--silent
(#2392)cacheExpiry
an experimental option for now (#2401)2018-08-07
2018-08-07
2018-08-01
2018-07-20
2018-07-20
2018-07-18
2018-07-18
2018-07-17
esm
format alias to types (#2327)2018-06-27
2018-06-23
2018-06-21
2018-06-20
__esModule
flag in output (#2287)2018-06-14
2018-06-14
2018-06-14
2018-06-13
2018-06-13
2018-06-11
2018-06-07
2018-06-06
legacy
option and thus IE8 support (#2141)2018-05-28
2018-05-24
2018-05-21
2018-05-16
2018-05-15
import.meta.url
(#2164)esm
format alias (#2102)interop: false
(#2149)2018-04-23
2018-04-18
2018-04-16
--perf
timings in watch mode (#2065)--dir
in a single file build (#2123)2018-03-17
forEach
with faster for
loops in some places (#2064)2018-03-15
.toString
tags to namespaces (#2041)2018-03-07
2018-03-05
2018-02-25
2018-02-19
2018-02-16
2018-02-15
2018-02-10
2018-02-09
2018-02-01
2018-02-01
2018-01-26
2018-01-23
missingExport
plugin hook (#1845)2018-01-17
2018-01-12
2018-01-10
TypeScript
declaration files (#1837)2018-01-02
resolveId
returns false (#1825)2017-12-30
2017-12-28
transformBundle
plugin hook (#1813)2017-12-22
2017-12-19
2017-12-15
2017-12-05
2017-11-25
2017-11-19
2017-11-17
2017-11-16
2017-11-11
2017-11-11
2017-11-10
2017-11-09
2017-11-08
2017-11-08
2017-11-08
2017-09-16
2017-09-08
watch
options (#1596)-o
to work with output.format
(#1606)2017-08-29
2017-08-28
2017-08-27
process.env.ROLLUP_WATCH
before loading config filerollup.watch
(#1532)rollup.watch
on change (#1535)export { foo } from
declarations in es
output (#1543)rollup.VERSION
es
output (#1511)bundle.write
correctly in rollup.watch
(#1533)--no-interop
flag (#1524)options.format
is now required (#1491)options.format
is es6
, it will now throw an error (should be es
) (#1491)rollup.watch
method, replacing rollup-watch (#1491)--watch
mode (#1491)onwarn
function's second argument is the default handler, allowing easier filtering without reimplementing any logic (#1491)exports
for namespaced but non-extended IIFE bundles (#1492)resolvedIds
from resolvedExternalIds
(#1490)--extend
flag to CLI (#1482)weak
from optionalDependencies
(#1483)bundle.generate(...)
returns a Promise, so that transformBundle
plugin hooks can be asynchronous (#1474)options.extend
is true (#827)this.warn
and this.error
to accept a {line, column}
object as an alternative to a character index (#1265)bundle.generate
options (#1463)process.env.ROLLUP_WATCH = 'true'
in watch mode (#1429)pureExternalModules
option (#1352)options.entry
(#1270)options.moduleId
in favour of options.amd.id
(#1365)options.amd.define
option to specify name of AMD define
function (#1365)treeshake: false
(#1375)watch
option (#1424)originalSourceMap
on incremental rebuilds for loaders with sourcemaps (#1336)export * from
declarations with defaults (#1278)treeshake: false
(#1268)source
when collapsing sourcemaps (#1254)export * from 'external'
declarations (#1252)this.foo
as possible namespace (#1258)namespace['foo']
references (#1240)this.warn(...)
and this.error(...)
methods to plugin transform
hook contexts (#1140)throw
always considered to be a side effect (#1227)file
property to sourcemaps for bundles with plugins (#986)export default
and declaration (#1218)var
initialisers in dead branches (#1198)var
declarations in dead branches (#997)export { foo as default }
creates live binding (#1078)new
expressions without side-effects (#179)var
declarations are included in output (#1113)legacy
fixes: do not create getters (#1069), do not include __esModule
(#1068), quote reserved property names (#1057)legacy
option for IE8 support (#989)this
(#1012)options.moduleContext
for per-module context overrides (#1023)auto
exports with ES output (#966)export { foo as default }
no longer creates a live binding (#860)interop: false
option to disable unwrapping of external imports (#939)flushTime.js
(#922)dependencies
in bundle.modules
objects (#903){ format }
through to transformBundle
(#867)options.context
to replace top-level this
(#851)noConflict
when used via rollup --config
(#846)outro
block after export block (#852)Bundle.sort()
(#800)paths
config (#754)export *
from external module, internallyoptions.globals
to work with them (#763)exports.foo;
statements (#755)ongenerate
and onwrite
plugin hooks (#742)--globals
to work with --external
or options.external
in whatever configuration (#743)rollup -c node:pkgname
(#736)rollup-watch
(#712)rollup --watch
to work with targetsrollup --watch
(#284)es6-promise
(#689)resolveId
plugin functions to return non-strings (#692)__esModule
property to named exports in AMD, CJS and UMD modes (#650)options.preferConst
to generate const
declarations for exports rather than var
declarations (#653)eval
security issue (#675)load
hook (#607)var
with no-treeshake option (#639)treeshake: false
/--no-treeshake
option for debugging (#505)noConflict
/--no-conflict
option for UMD builds (#580)foo. bar
where foo
is a namespace import is rewritten correctly (#566)export { document }
) (#562)export {}
, warn instead (#486)null
in _interopDefault
(#474)var exports.foo
(#426)resolveId
/load
hooks (#275)_interopDefault
function to DRY out code with many external dependencies, in CommonJS output (#458)--external
option correctly (#417)options.external
(#410)options.external
(#407)dest
or sourceMapFile
is resolved against CWD for purposes of sourcemap generation (#344)banner
, footer
, intro
and outro
options via CLI (#330)options.global
to be a function rather than an object, and warn on missing names (#293)bundleTransform
plugin hook and option (#387)--environment
option to CLI (#388)var
keywords (#390)moduleName
contains dots (#378)options
object (#371)delete
statements (#352)aggressive: true
(was too aggressive) (#309)aggressive: true
option to eliminate all side-effects outside entry modulerollup --config
(#288)Promise
where used, for Node 0.10 support (#254)export *
declarations caused error (#244)banner
and footer
options (string, or function that returns a string) (#235)eval
(#186)foo$1
already exists--config
file to enable plugins with CLI (#226)default
being used as variable name (#215)options.transform
, options.load
, options.resolveId
, options.resolveExternal
and options.external
are no longer supported, and should be handled by plugins. More infoimport data from 'data.json'
(with the appropriate transformer). For safety, always include the file extension – import ./foo.js
, not ./foo
ReferenceError: Promise is not defined
in node v0.10 (#189)module.basename()
when used with custom resolveId
functionrequire( 'rollup' ).VERSION
transform
option is no longer passed through to custom loaders. Loaders should only concern themselves with providing source code; transformation will always take placeoptions.transform
functions can return a string, or a {code, map, ast}
object. Where possible, sourcemap chains will be flattened (#175)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)intro
and outro
options – similar to banner
and footer
except inserted inside any format-specific wrapperexport let a = 1, b = 2
) are split up to facilitate tree-shaking (#171)chalk
and source-map-support
to dependencies
, as they're used by the CLI (#167)external.config.foo = 'bar'
) without erroringacorn.parse
in bundle, remove sander
from dependencies, simplify build.
(#133)modules
property to user-facing bundle
– an array with {id}
objects (#128)import mod from 'foo/sub/mod'
(#126)Identifier
class markable)import
statements, and do tree-shaking synchronously once loading is complete. This results in simpler and faster code, and enables future improvements (#97)foo
as exports.foo
when it makes sense to (#92)Scope
model – scopes always attach to blocks, never function expressions/declarationsexport { name } from './other'
does not create a local binding (#16)useStrict
option exposed to CLI as --strict
/--no-strict
(#81)export { x } from 'y'
declarations (#74)banner
and footer
options (#66)exports
to avoid conflicts (#66)--globals
option to CLI (#60)foo[bar]
) when discovering dependencies (#47)export * from '..'
(#46)dist/rollup.browser.js
) (#25)var
declarations for exported bindings are omittedresolvePath
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)sourcemap
option is used by CLI (was omitted previously)moduleId
and moduleName
via CLI (#24)this
at the top level is undefined
(#28)path.parse
- unsupported in node 0.10source-map-support
from devDependencies
to dependencies
(#23)export default
statements (#21)--external foo,bar,baz
option to CLI (equivalent to external: ['foo', 'bar', 'baz']
)export default
constraint (fixes bug introduced in 0.7.3)foo.bar()
mutates foo
) (#13)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)exports
correctly (UMD exports)moduleName
is required but missing (UMD exports)this
rather than window
Object.prototype
properties (#12)rollup.rollup
and bundle.write
both take a single options argumentoptions.external: [...]
jsnext:main
fields in the appropriate package.json
files. This behaviour can be overridden by passing an alternative resolveExternal
functionexport { x as y } from 'z'
rollup.rollup
now rolls up rollup