Releases: rollup/rollup
Releases Β· rollup/rollup
v4.1.5
4.1.5
2023-10-28
Bug Fixes
- Fix an issue where actual entries that were also implicit entries could remain implicit (#5220)
Pull Requests
- #5209: Document Vite workaround for browser build (@curran)
- #5215: chore(deps): update dependency lint-staged to v15 (@renovate[bot])
- #5216: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
- #5218: Update license plugin (@lukastaegert)
- #5219: Fix error highlight in REPL (@lukastaegert)
- #5220: Fix race condition when emitting implicitly dependent entries (@lukastaegert)
- #5224: chore(deps): update actions/setup-node action to v4 (@renovate[bot])
- #5225: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
v4.1.4
4.1.4
2023-10-16
Bug Fixes
- Reduce sizes @rollup/browser and @rollup/wasm-node WASM artifacts (#5204)
Pull Requests
- #5204: perf: shrink wasm size by avoid importing browserslist (@sapphi-red)
v4.1.3
4.1.3
2023-10-15
Bug Fixes
- Fix WASM build as hash function was not exported (#5203)
Pull Requests
- #5203: fix: export xxhashBase64Url from wasm (@sapphi-red)
v4.1.1
4.1.1
2023-10-15
Bug Fixes
- Improve Node parsing performance (#5201)
Pull Requests
- #5201: perf: use mimalloc for bindings_napi (@sapphi-red)
v4.1.0
4.1.0
2023-10-14
Features
- Reduce memory usage of Rollup builds (#5133)
Pull Requests
- #5133: perf: reducing ast node memory overhead (@thebanjomatic)
- #5177: chore: explicitly set rust toolchain channel (@cijiugechu)
- #5179: Update migration guide for Rollup 4 (@lukastaegert)
- #5180: Resolve clippy errors (@cijiugechu)
- #5183: Add clippy to pipeline and fix remaining issues (@lukastaegert)
- #5184: docs: fix code example for
onLog
(@tjenkinson) - #5186: Improve wording for native artifacts in migration guide (@lukastaegert)
- #5190: test: add verifyAst type (@TrickyPi)
- #5196: chore(deps): update dependency rollup to v4 (@renovate[bot])
- #5197: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
v4.0.2
4.0.2
2023-10-06
Bug Fixes
- Fix annotation detection logic to not fail when a non-ASCII character precedes a double underscore (#5178)
Pull Requests
- #5178: Handle special characters before double underscores (@lukastaegert)
v4.0.1
v4.0.0
4.0.0
2023-10-05
BREAKING CHANGES
General Changes
- The minimal required Node version is now 18.0.0 (#5142)
- The browser build now relies on a WASM artifact that needs to be provided as well (#5073)
- The NodeJS build now relies on an optional native binary; for unsupported platforms, users can use the
@rollup/wasm-node
package that has the same interface as Rollup but relies on WASM artifacts (#5073) - The "with" syntax for import attributes is not yet supported, awaiting support in SWC (#5073)
- The
INVALID_IMPORT_ASSERTION
error code has been replaced withINVALID_IMPORT_ATTRIBUTE
(#5073) - Rollup will now warn for
@__PURE__
and@__NO_SIDE_EFFECTS__
annotations in invalid locations (#5165) - If an entry module starts with a shebang comment
#!...
, this comment will be prepended to the output fores
andcjs
formats (#5163) - File hashes will now use url-safe base64 encoded hashes (#5155)
- The maximum hash length has been reduced to 22 characters (#5155)
- The
RollupWarning
type has been removed in favor of theRollupLog
type (#5147)
Changes to Rollup Options
- Acorn plugins are no longer supported, the
acornInjectPlugins
option has been removed (#5073) - The
acorn
option has been removed (#5073) output.externalImportAssertions
has been deprecated in favor ofoutput.externalImportAttributes
(#5073)inlineDynamicImports
,manualChunks
andpreserveModules
have been removed on input option level: Please use the corresponding output options of the same names (#5143)- Removed output options (#5143):
output.experimentalDeepDynamicChunkOptimization
: This option is no longer needed as Rollup now always runs the full chunking algorithmoutput.dynamicImportFunction
: Use therenderDynamicImport
plugin hook insteadoutput.namespaceToStringTag
: Useoutput.generatedCode.symbols
insteadoutput.preferConst
: Useoutput.generatedCode.constBindings
instead
Plugin API Changes
- For
this.resolve
, the default of theskipSelf
option is nowtrue
(#5142) this.parse
now only supports theallowReturnOutsideFunction
option for now (#5073)- Import assertions now use the new import attribute AST structure (#5073)
- "assertions" have been replaced with "attributes" in various places of the plugin interface (#5073)
- If the import of a module id is handled by the
load
hook of a plugin,rollup.watch
no longer watches the actual file if the module id corresponds to a real path; if this is intended, then the plugin is responsible for callingthis.addWatchFile
for any dependency files (#5150) - The normalized input options provided by
buildStart
and other hooks no longer contain anonwarn
handler; plugins should useonLog
instead (#5147) this.moduleIds
has been removed from the plugin context: Usethis.getModuleIds()
instead (#5143)- The
hasModuleSideEffects
flag has been removed from theModuleInfo
returned bythi s.getModuleInfo()
: UsemoduleSideEffects
on theModuleInfo
instead (#5143)
Features
- Improve parsing speed by switching to a native SWC-based parser (#5073)
- Rollup will now warn for
@__PURE__
and@__NO_SIDE_EFFECTS__
annotations in invalid locations (#5165) - The parser is now exposed as a separate export
parseAst
(#5169)
Bug Fixes
- Rollup no longer tries to watch virtual files if their name corresponds to an actual file name; instead, plugins handle watching via
this.addWatchFile()
(#5150)
Pull Requests
- #5073: [v4.0] Switch parser to SWC and introduce native/WASM code (@lukastaegert)
- #5142: [v4.0] Set the default of skipSelf to true (@TrickyPi)
- #5143: [v4.0] Remove deprecated features (@lukastaegert)
- #5144: [v4.0] Imporve the performance of generating ast and rollup ast nodes (@TrickyPi)
- #5147: [v4.0] Remove onwarn from normalized input options (@lukastaegert)
- #5150: [v4.0] feat: Do not watch files anymore if their content is returned by the load hook (@TrickyPi)
- #5154: [v4.0] Add parse option to allow return outside function (@lukastaegert)
- #5155: [v4.0] feat: implement hashing content in Rust (@TrickyPi)
- #5157: [v4.0] Handle empty exports (@lukastaegert)
- #5160: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
- #5163: [v4.0] feat: preserve shebang in entry module for CJS and ESM outputs (@TrickyPi)
- #5164: [v4.0] fix: also strip BOM from code strings in JS (@TrickyPi)
- #5165: [v4.0] warn for invalid annotations (@lukastaegert)
- #5168: [v4.0] Ensure we support new import attribute "with" syntax (@lukastaegert)
- #5169: [v4.0] Expose parser (@lukastaegert)
v3.29.4
3.29.4
2023-09-28
Bug Fixes
- Fix static analysis when an exported function uses callbacks (#5158)
Pull Requests
- #5158: Deoptimize all parameters when losing track of a function (@lukastaegert)
v3.29.3
3.29.3
2023-09-24
Bug Fixes
- Fix a bug where code was wrongly tree-shaken after mutating function parameters (#5153)
Pull Requests
- #5145: docs: improve the docs repl appearance in the light mode (@TrickyPi)
- #5148: chore(deps): update dependency @vue/eslint-config-typescript to v12 (@renovate[bot])
- #5149: chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
- #5153: Fully deoptimize first level path when deoptimizing nested parameter paths (@lukastaegert)