Releases: rolldown/rolldown
v1.0.0-beta.8
What's Changed
Please refer to https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md.
New Contributors
- @okineadev made their first contribution in #3979
- @CoderSerio made their first contribution in #4108
- @Gumball12 made their first contribution in #4167
- @marcalexiei made their first contribution in #4179
- @antfu made their first contribution in #4229
- @ghiscoding made their first contribution in #4228
Full Changelog: v1.0.0-beta.7...v1.0.0-beta.8
v1.0.0-beta.7
What's Changed
Please refer to https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md.
Full Changelog: v1.0.0-beta.6...v1.0.0-beta.7
v1.0.0-beta.6
What's Changed
Please refer to https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md.
New Contributors
- @barnett617 made their first contribution in #3818
- @TheAlexLichter made their first contribution in #3867
Full Changelog: v1.0.0-beta.4...v1.0.0-beta.6
v1.0.0-beta.4
What's Changed
Please refer to https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md.
New Contributors
- @idleberg made their first contribution in #3233
- @eavidy made their first contribution in #3238
- @unStone made their first contribution in #3305
- @alpheustangs made their first contribution in #3360
- @alexted made their first contribution in #3521
- @jrmajor made their first contribution in #3614
- @marvinroger made their first contribution in #3720
- @phip1611 made their first contribution in #3716
- @ulrichstark made their first contribution in #3766
- @nilptr made their first contribution in #3285
- @YangJonghun made their first contribution in #3750
Full Changelog: v1.0.0-beta.1...v1.0.0-beta.4
v1.0.0-beta.1
New updated docs now is available at https://rolldown.rs/guide.
What's Changed
- feat: support jsx false and preserve by @underfin in #3176
- chore(rolldown): oxc v0.42.0 by @Boshen in #3175
- chore: add jsx js doc by @underfin in #3177
- fix: watch files after scan stage by @underfin in #3149
- fix: using correct plugin name at PluginContext by @underfin in #3179
- chore(test): separate watch test by @underfin in #3178
- fix: meta.dependency should consider reexport chain owner that has side effects. by @IWANABETHATGUY in #3181
- feat: emit a warning when
minify: true
by @shulaoda in #3182 - feat(wasm): wasi worker threads reuse by @Brooooooklyn in #3183
- chore: remove unnecessary hack code for watch test by @underfin in #3180
- refactor(node/types)!: remove compat exports for rollup by @hyf0 in #3185
- chore: using tokio spawn direcly by @underfin in #3186
- refactor: render_object_define_property by @underfin in #3187
- chore(infra): remove
rollup.d.ts
by @shulaoda in #3189 - refactor(cjs): determine_export_mode by @underfin in #3191
- fix: barrel exports optimization related side effects dependency should be reserved. by @IWANABETHATGUY in #3190
- fix(node): make
name
property required for plugins by @sapphi-red in #3192 - refactor: improve the error return type for
GenerateStage
by @shulaoda in #3194 - refactor(rust): stop taking internal reference of oxc's
SymbolTable
by @hyf0 in #3193 - chore(rolldown): oxc v0.43.0 by @Boshen in #3196
- chore: update symbolRef debug helper by @IWANABETHATGUY in #3198
- fix(iife/umd): named exports if module wrapped by @underfin in #3195
- fix: merge external default import by @IWANABETHATGUY in #3203
- fix: merge external string alias import by @IWANABETHATGUY in #3205
- refactor: move ScopeHoistingFinalizer utils to mod.rs by @IWANABETHATGUY in #3206
- chore: remove unnecessary cspell directive by @IWANABETHATGUY in #3207
- ci(release): generate npm provenance for non-normal version by @hyf0 in #3209
- fix(splitting): ensure correct symbol reference if module is cjs by @underfin in #3210
- perf: remove extra allocation on
MagicString#to_string
by @hyf0 in #3211 - chore(cjs): add line break for common chunk exports by @underfin in #3213
- fix(interop): should detect importer is esm module by @underfin in #3212
- feat(cli): support array output by @underfin in #3217
- refactor: remove unnecessary circular dependency check by @shulaoda in #3222
- chore: make ecma_ast cloneable by @IWANABETHATGUY in #3223
- chore: update release process by @hyf0 in #3225
- chore: remove redundant todo by @IWANABETHATGUY in #3224
- refactor: remove unnecessary
make_ast_scopes_and_symbols
by @shulaoda in #3221 - fix(cli): with
--file
or-o
, shouldn't print bundle output to stdout by @hyf0 in #3228 - fix:
dir
should be ignored iffile
is set by @hyf0 in #3229 - feat: inject
NODE_ENV
based on minify option for browser platform by @hyf0 in #3230 - docs: update docs for beta by @yyx990803 in #3231
- release: v1.0.0-beta.1 by @hyf0 in #3232
Full Changelog: v0.15.1...v1.0.0-beta.1
v0.15.0
Important Changes
New Features
- Support for
OutputOptions.file
has been added. - Treeshaking is now available for dynamic
import(...)
. - Legal comments can be preserved using
OutputOptions#comments: 'preserve-legal'
. - A new
build
API has been introduced for more user-friendly programmatic usage.
// Instead of
(await (await rolldown(options)).write(options.output))
// Use `build`
await build(options)
UX Improvements
- The platform is automatically set to
node
when the outputformat
iscjs
, if not specified. - Automatic polyfill for
require
is provided when bundling code that mixes ESM and CJS toformat: 'esm'
withplatform: 'node'
. - Automatic polyfill for
import.meta.url
is provided when bundling ESM code toformat: 'cjs'
withplatform: 'node'
.
Correctness
- To improve interoperability between ESM and CJS, Rolldown passes all tests listed in bundler-esm-cjs-tests.
esbuild: ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ rolldown: ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ node: ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ 🚫🚫 ✅✅ 🚫🚫 🚫🚫 🚫🚫 🚫🚫 🚫🚫 ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ 🚫🚫 ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ webpack: 🚫🚫 🚫🚫 ✅🚫 🚫🚫 🚫🚫 ✅🚫 🚫🚫 ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ 🚫🚫 🚫🚫 🚫🚫 ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ 🚫🚫 ✅✅ ✅✅ ✅✅ ✅✅ parcel: ✅✅ ✅✅ 🚫🚫 🚫🚫 🚫🚫 🚫🚫 🚫🚫 ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ 🚫🚫 🚫🚫 🚫🚫 ✅✅ 🚫🚫 🚫🚫 🚫🚫 🚫🚫 ✅✅ 🚫🚫 🚫🚫 🚫🚫 ✅✅ ✅✅ ✅✅ ✅✅ rollup: 🚫🚫 🚫🚫 ✅✅ 🚫✅ ✅✅ ✅✅ 🚫🚫 🚫🚫 🚫🚫 🚫🚫 ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ ✅✅ 🚫🚫 ✅✅ ✅✅ 🚫🚫 ✅✅ ✅✅ ✅✅ 🚫🚫 🚫🚫 🚫🚫 🚫🚫 🚫🚫 🚫🚫 🚫🚫 🚫🚫 ✅✅
For more details, see ref.
- Rolldown promises to run successfully on all LTS Node.js versions. Our full test suites are enabled on Node.js versions 18, 20, and 22.
- Fresh self-bootstrapping for every commit: Rolldown now rebuilds itself with the code in each commit and runs all tests to ensure correctness.
More changes
Please refer to https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md.
New Contributors
- @thesmartwon made their first contribution in #2636
- @eolme made their first contribution in #2732
- @gautemo made their first contribution in #2809
Full Changelog: v0.14.0...v0.15.0
v0.14.0
Important features
- Native
watch()
support asset
module type supportumd
format
What's Changed
Please refer to https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md.
New Contributors
- @inottn made their first contribution in #2169
- @nojaf made their first contribution in #2382
- @burhanuday made their first contribution in #2411
- @ryanbas21 made their first contribution in #2480
- @liruifengv made their first contribution in #2517
- @timfish made their first contribution in #2516
- @hamirmahal made their first contribution in #2581
Full Changelog: v0.13.2...v0.14.0
v0.13.0
Important Changes
- node/rolldown: fix long time exit issue (#2135) (06b578c)
- hook filter (#2047) (6039415)
- node/rolldown: support
define
functionality (#1891) (43f6f22), closes #186 - node/rolldown: support
InputOptions#inject
(#1946) (9071d6a) - node: support CLI options. (#1963) (6d4ef7e), closes #1955
- node: support passing
custom
inPluginContext#resolve
(#1874) (6a61bad), closes /github.com/vitejs/vite/blob/main/packages/vite/src/node/plugins/resolve.ts#L181 - plugin/replace: objectGuards (#2121) (ea76b06), closes #2057 1#L46 /github.com/rollup/plugins/blob/master/packages/replace/src/index.js#L41
- plugin/replace: prevent assignment (#2093) (18ac29c), closes #2057 /github.com/rollup/plugins/blob/master/packages/replace/src/index.js#L77-L82
- rust/plugin: Support
custom
inPluginContextResolveOptions
(#1876) (0c6cae4), closes #1874 - rust/rolldown: support
inject
imports (#1933) (a2bb2ca) - rust: ensure consistency between scanned top-level symbols and scope's (#1742) (00d43e9)
- support
intro
andoutro
in plugins. (#1763) (b15d8c5), closes #1755 #1713 - support
output.esModule
option (#1812) (4999aed) - support
output.exports
forIIFE
format align with rollup. (#1691) (5418e1f), closes #1680 - support
output.footer
in plugins. (#1713) (536d5f7), closes #1702 /github.com/rolldown/rolldown/pull/1702#issuecomment-2248059655 - support
output.globals
for iife format (#1694) (8aad7d0), closes #1623 #1569 - support
output.inlineDynamicImports
option. (#2081) (63b932e), closes #1841 - support
output.intro
andoutput.outro
. (#1712) (964c5ee), closes #819 - support
OutputOptions#externalLiveBindings
(#1979) (cc41c94) - support
skipSelf
option inPluginContext.resolve
(#1703) (a18a8da), closes #1554 #819 /github.com/rollup/rollup/blob/28546b5821efcb72c2eb05f422d986524647a0e3/src/utils/PluginContext.ts#L78 - support flag for regex in plugin transform (#1969) (f4f6b49), closes #1914 #1915 /github.com/rolldown/rolldown/blob/6389d62f876a122df451d3e0151f79f59dd978cb/crates/rolldown_plugin_transform/src/lib.rs#L20-L25
- support flags for hybrid regex (#1915) (5ad5820), closes #1911
- support function for entry/chunkFileNames (#1834) (d023f2f)
- support loading dataurl as module. (#1741) (549e1e1), closes /github.com/evanw/esbuild/blob/main/internal/bundler_tests/snapshots/snapshots_loader.txt#L602
- support namespaced name and
output.extend
for IIFE format. (#1861) (bfae17d) - support plugin order (#1929) (d128866)
- transform plugin (#1914) (d37079a)
What's Changed
Please refer to https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md.
New Contributors
- @DonIsaac made their first contribution in #1800
- @kermanx made their first contribution in #1732
- @yuyinws made their first contribution in #1996
- @Kreijstal made their first contribution in #2034
- @overlookmotel made their first contribution in #2040
- @hikomoon made their first contribution in #2134
Full Changelog: v0.12.2...v0.13.0
v0.12.2
What's Changed
- refactor: improve logic of
render_preliminary_assets
and add more comments by @hyf0 in #1622 - test(format/iife): add case of importing external modules by @hyf0 in #1624
- refactor: use
ArcStr
everywhere by @hyf0 in #1626 - feat: support output.name for iife by @underfin in #1627
- chore(deps): update npm-rolldown by @renovate in #1615
- feat(wip/css): use lightningcss as css compiler by @hyf0 in #1629
- refactor(rust): stop deriving
Clone
onModuleType
by @hyf0 in #1631 - feat(rust): Support accepting custom
ModuleType
by @hyf0 in #1632 - refactor(rust): tweak the data flow of
ModuleType
by @hyf0 in #1633 - chore(deps): update rust crate oxc_resolver to v1.10.1 by @renovate in #1635
- chore: update
.prettierignore
by @hyf0 in #1636 - chore(deps): update rust crate oxc_resolver to v1.10.2 by @renovate in #1638
- chore: add more comments on
ImportRecord
by @hyf0 in #1640 - chore: add remapping benchmark by @underfin in #1637
- feat: throw friendly warning message for ambiguous export by @shulaoda in #1634
- perf(sourcemap): lookup original token in parallel by @underfin in #1596
- refactor: rename
BuildError
toBuildDiagnostic
by @IWANABETHATGUY in #1641 - fix(node): fix type errors by @hi-ogawa in #1642
- feat: support banner hook by @komyg in #1419
- refactor: separate render chunk logic for different format by @underfin in #1644
- refactor(rust): improve naming related to
ModuleDefFormat
by @hyf0 in #1645 - refactor(rust/resolver): handle bundle-related resolve errors in one place by @hyf0 in #1646
- refactor(rust/resolver): rename
ResolvedRequestInfo
toResolvedId
by @hyf0 in #1647 - refactor(rust/resolver): make
EcmaModuleTask
holdResolveId
directly by @hyf0 in #1648 - refactor(rust/resolver): remove unnecessary
ResolvedPath
by @hyf0 in #1649 - refactor: add abstraction for rendering chunk imports targeting different format by @underfin in #1651
- refactor(rust): rename
ResourceId
toModuleId
by @hyf0 in #1650 - refactor(rust): change
pub mod format
tomod format
by @hyf0 in #1652 - refactor(rust): introduce
ModuleFactory
trait by @hyf0 in #1653 - chore: remove unreachable code by @IWANABETHATGUY in #1654
- fix: support banner/footer sync function by @underfin in #1657
- refactor: remove collapse_sourcemaps optional result by @underfin in #1658
- fix: external warning in dce/disable-tree-shaking by @IWANABETHATGUY in #1659
- chore: add render chunk remapping benchmark by @underfin in #1662
- chore: bump oxc to v0.21.0 by @Dunqing in #1656
- feat: better error report for ambiguous export by @shulaoda in #1661
- refactor(remapping): instante token in parallel by @underfin in #1666
- chore: add minify benchmark by @underfin in #1667
- fix: correct the behavior in texture or empty extension-customized file. by @7086cmd in #1668
- chore: add js side minify benchmark by @underfin in #1669
- feat: convert parsing errors of oxc to rolldown's errors with friendly messages by @shulaoda in #1670
- fix: the crate rolldown_ecmascript's test can't pass by @shulaoda in #1672
- refactor(rust): add
EcmaAstIdx
to indexEcmaAst
by @hyf0 in #1673 - refactor(rust): return
Module
instead ofEcmaModule
inEcmaModuleTask
by @hyf0 in #1674 - chore(deps): update npm-rolldown by @renovate in #1676
- chore(deps): update rust crates by @renovate in #1677
- docs(contrib): add
Code Styling
chapter and preferences on adding tests by @hyf0 in #1682 - fix: reexport star of a external module should be considered have side effect. by @IWANABETHATGUY in #1675
- chore: refactor sourcemap test by @underfin in #1685
- chore: 🤖 update generated binding format by @IWANABETHATGUY in #1686
- feat: support
output.exports
option. by @7086cmd in #1680 - ci: add FreeBSD x64 build by @Brooooooklyn in #1687
- fix: should include the dependencies if the module only has re-export… by @underfin in #1683
- chore(rolldown): add FreeBSD npm package by @Brooooooklyn in #1688
- release: v0.12.2 by @hyf0 in #1689
New Contributors
Full Changelog: v0.12.1...v0.12.2
v0.12.1
Important features
- Support minify output using
OutputOptions#minify
- Experimental output that strictly respect execution order #1568
- Support emit IIFE output
What's Changed
Please refer to https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md.
New Contributors
- @rzvxa made their first contribution in #1560
- @brenner8023 made their first contribution in #1563
Full Changelog: v0.11.1...v0.12.1