0.15.1 (2024-12-18)
- avoid one JsError into_unknown twice (#3020) (504ea76), closes /github.com/napi-rs/napi-rs/blob/main/crates/napi/src/error.rs#L245
- buildEnd hook should handle buildStart hook error (#3117) (1ae46b7)
- call
closeBundle
on cli and one-shotbuild
api (#3026) (2969a22) - dedupe external import binding for format
esm
(#3082) (d1cf2f8) - duplicated module import info (#3171) (f0c42f8)
- dynamic import tree-shaking boundary issue caused by object rest pattern (#3041) (7b6a13b), closes /github.com/rolldown/rolldown/blob/5d0ff351bffaab3da5077615553470c10d0699b4/crates/rolldown/src/ast_scanner/dynamic_import.rs#L188
- ensure legal identifier for require binding (#3067) (64a831c), closes #3056
- fix build output to stdout (#3144) (9713459), closes /github.com/unjs/consola/blob/e510121bb9e53f099c9e3387f8467e3b30bf9edf/src/reporters/fancy.ts#L135-L143
- keep names for class/function expression (#3051) (225f6a4)
- make chunk export symbol deconflict stable (#3022) (d31b48b)
- make ThisExpr span unique (#3038) (897aa2c), closes /github.com/rolldown/rolldown/pull/3031#issuecomment-2516878862
- node: print correct version for nightly/canary (#3126) (39f9197), closes #1579
- propagate augmented hash to parent chunks (#3059) (5815d0f)
- remove lazy parse expr hack (#3118) (6d5c8ff)
- renderError hook should handle renderStart hook error (#3121) (5407b76)
- should create one sourcemap if transform hook not return (#3107) (b30cd89)
- shouldn't have unexpected warning severity for error (#3163) (f2dfbac)
- support multi fn and class expr keep_names (#3054) (f44af55)
- the renderError hooks should handle js errors (#3108) (fff8244)
- umd: ensure exports if module is wrapped (#3089) (1e4dcb4)
- wasmHelperPlugin test (#3120) (92a0ce9)
- watch-cli: respect output options (#3136) (00ca411)
- wrong output when external import name is string literal (#3116) (d303f26), closes #3094
keepNames
node binding (#3027) (176666f), closes #2985names
/originalFileNames
support (#3024) (daa17ff), closes #2496- api:
build
API write to disk by default (#3019) (a83297c) - cjs: support disable polyfill
require
byOutputOptiond#polyfillRequire: 'false'
(#3091) (b12b20a) - compat with typescript's extension resolution (#3078) (5f3ed63), closes /github.com/evanw/esbuild/blob/a08f30db4a475472aa09cd89e2279a822266f6c7/internal/resolver/resolver.go#L1622-L1644 #3075
- emit error for non-resolved absolute path (#3080) (de64ad9), closes #3074
- emit error for non-resolved relative path (#3074) (e1b52fc)
- expose the option
checks
toinputOptions
(#3052) (711c16c), closes /github.com/rolldown/rolldown/blob/225f6a41679fff165eff297ba21578a72b4d88eb/packages/rolldown/tests/fixtures/onwarn/_config.ts#L8 - give warning for multiply notify option (#3085) (fe15409)
- imported empty module would be treated as esm (#3093) (86db816)
- json_plugin: add named_exports (#2523) (198e22f)
- keep name for ClassDecl (#3023) (039c9fb)
- keep_names for FunctionDeclaration (#3021) (751f8fc)
- module side effects function type binding (#3030) (071807e), closes #2606
- node: support
SourceMap::toUrl
/SourceMap::toString
(#3064) (1f21417) - node: support ts config file (#3134) (5fd2729)
- plugin/json: support
stringify: 'auto'
(#3103) (0ad8217) - plugin/vite-resolve: implement fileUrl properly (#3040) (1083314)
- plugin/vite-resolve: support
resolve.dedupe
(#3061) (2ec340e) - plugin/vite-resolve: support Regex in noExternal (#3039) (66086e7)
- rolldown_plugin_transform: support both target & browserslist (#3042) (c235a89)
- rolldown: polyfill
import.meta.dirname|filename
in cjs (#3053) (22747a3) - string_wizard: add
serde
feature (#3140) (1265c2c) - support ModuleInfo#exports (#3170) (786b6d2), closes /github.com/rollup/rollup/blob/master/src/Module.ts#L331
- support multi alias in js side (#3060) (71e2927)
- watcher: support multiply watch options (#3037) (3ab9463)
- remove sub optimal par_bridge (#3072) (c66278b)
- remove unnecessary collect (#3070) (c60206c)
- rolldown: remove
AppendOnlyVec
fromreference_needed_symbols
(#3164) (ff1ed90)
0.15.0 (2024-12-02)
forbid-const-assign
should considering all write scenario (#2715) (015d4f1)- cli doesn't show config loading error details (#2709) (72ed6ce), closes /github.com/rolldown/rolldown/pull/2707#issuecomment-2470659332
- advancedChunks: should not process treeshaked modules (#2619) (73229c4), closes #2617
- align resolve behavior of
new URL(..., import.met.url)
with webpack (#2738) (2b4f224) - allow mutating
chunk.imports
and more (#3008) (9e58163), closes /github.com/vitejs/vite/blob/8f0a9dcff112c866d9aa911647fd3cf9adc50bf1/packages/vite/src/node/plugins/css.ts#L1011-L1029 /github.com/vitejs/vite/blob/8f0a9dcff112c866d9aa911647fd3cf9adc50bf1/playground/html/tests/html.spec.ts#L186-L188 - avoid overwrite ModuleOptions#meta (#2954) (46f2f93), closes /github.com/rollup/rollup/blob/master/src/Module.ts#L1011
- avoid unresolved promise if load same id at concurrent (#2777) (9eb7103)
- check assign to import for namespace specifier (#2706) (15ac3de), closes #2607
- check falsy plugin in options hook (#2670) (66680f5), closes /github.com/rolldown/rolldown/blob/f3a159b51ce05b6b513d121d279cd3b9a799544a/packages/rolldown/src/utils/normalize-plugin-option.ts#L10 /github.com/rolldown/rolldown/pull/2670/files#diff-48cd2591bdcb44946219841aaccab8eb2d54381960f9607cb7542c40f446d92eR105
- ci: ignore cargo deny advisories some rules (#2692) (88b02c6)
- cjs:
import(...)
should have the same result as esm output (#2999) (d42ea8a) - cjs: fix named default export (#2923) (11a6693), closes /github.com/rolldown/rolldown/issues/2903#issuecomment-2496018956 /esbuild.github.io/try/#YgAwLjI0LjAALS1mb3JtYXQ9Y2pzAGUAZW50cnkuanMAZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gJ25vZGU6cGF0
- cjs: fix runtime chunk's
__toESM
reference for external import wrapper (#2911) (aaa96db) - cjs: should generate correct cross chunk symbol references (#2926) (8f9ccbc), closes /github.com/rolldown/rolldown/pull/2796#issue-2671507357
- cjs: should generate correct expr for reference cross chunk symbols (#2796) (a0d0d42)
- cjs: shouldn't generate
export
keyword in cjs output (#2807) (80daf63) - commonjs_variable_in_esm: should only care about global references (#2657) (92f6e86)
- correctly collect Result without flatten (#2771) (ac8b28a)
- deconflict
__require
(#2675) (0f44c14) - defer determine WrapKind of
EcmaView
of css module (#2631) (4c1a715) - define should ahead of transform (#2940) (0c11a21)
- diagnostic with wrong span wrong span when content has none ascii char (#2653) (beec3a9), closes #2651
- dynamic import tree shaking with eval should bailout (#2730) (d53cb4c), closes #2724
- emit error when
output.format
did not supporttopLevelAwait
(#2629) (db018fa), closes /github.com/evanw/esbuild/commit/5fe21253ee75fb4c5ea395a0877b2a5ab51c3575#diff-f312cd3ffe8d88cf424d3f0bd04b41e5b0ad36e549874b5688028bf9091a61f5L2238 - enhance js plugin hook error like rollup (#2767) (c908f9e)
- ensure support nest and async plugins (#2924) (b201634)
- ensure transform hook return vaild sourcemap to binding (#2939) (3a91360)
- ensure transform hook sourcemap sources is valid (#2948) (8ca3cab)
- fix
\0
inJsChangedOutputs.chunks
(#3006) (3f476c3) - fix cjs live binding import name sourcemap (#2795) (6886de3)
- fix cjs live binding import source map (#2878) (390e42f), closes /esbuild.github.io/try/#dAAwLjI0LjAALS1zb3VyY2VtYXAgLS1mb3JtYXQ9Y2pzAGltcG9ydCBhc3NlcnQgZnJvbSAnbm9kZTphc3NlcnQnOwoKYXNzZXJ0Lm9 /evanw.github.io/source-map-visualization/#MTI1NwB2YXIgX19jcmVhdGUgPSBPYmplY3QuY3JlYXRlOwp2YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5Owp2YXIgX19nZXRPd25Qcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7CnZhciBfX2dldE93blByb3BOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzOwp2YXIgX19nZXRQcm90b09mID0gT2JqZWN0LmdldFByb3RvdHlwZU9mOwp2YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIF9fY29weVByb3BzID0gKHRvLCBmcm9tLCBleGNlcHQsIGRlc2MpID0
- fix deconflict in nested scope (#2673) (e83d836)
- generate correct chunk imports (#2787) (f65c876)
- handle "\0" in
chunk.modules
object key (#2991) (0628d1b) - iife: should ensure exectution if entry module is wrapped (#2822) (0b8dbaa)
- improve detection of
new URL(...)
(#2747) (e2c4e6a), closes #2741 #2744 - inlineDynamicImports: don't normalize
inlineDynamicImports
on js side (#2834) (1ae6760) - interop: improve compatibility of
.cts
and.mts
imports cjs (#2770) (a44c472) - interop: improve compatibility of esm imports cjs (#2769) (1b6179c)
- json module parse error (#2760) (7abfb34), closes #2757
- keep external module live bindings at format cjs/umd/iife (#2756) (29be5d9)
- lazy export json module (#2918) (ba3d73a)
- make sure the sort compare function satisfy
total order
(#2621) (8daf1a0) - module format infer (#3005) (7220449)
- moduleSideEffects: true returned from load hook works differently from when it is returned from resolveId hook (#2845) (22d3350), closes #2828
- nested member expression mutation from imports (#2982) (eee0d1c)
- new_url: generate correct path for nested paths (#2749) (c3ee7ad)
- prefix-only module is a builtin module (#2729) (1462a6e)
- preserve
chunk.modules
aftergenerateBundle
mutation (#2993) (4d0092f) - preserve external module side effects at format umd/iife (#2719) (74eace9)
- preserve js plugin hook error stacktrace (#2711) (3d47bd0)
- preserve more js plugin hook errors (#2759) (a618dcb), closes /github.com/evanw/esbuild/blob/9eca46464ed5615cb36a3beb3f7a7b9a8ffbe7cf/lib/shared/common.ts#L1673-L1683
- prevent crashes with dynamic imports using variable paths when
inlineDynamicImports
is enabled (#2865) (9f9d29a), closes #2833 - redundant external import (#2946) (9cc0c2f)
- remove '\0' hack (#2667) (4152616)
- rust: ensure filenames are valid for file systems (#2664) (b739329)
- set external module info (#2913) (7569364)
- should use computed prop if json key is proto (#2941) (d1fd231), closes /github.com/evanw/esbuild/commit/4780075ace9f5f59b61018326ec57da624a7d7a2#diff-58e541e6e2d17614efb5fc6c2a9e4151f54f5c599a0f0acde43bca8da970be64R1674
- shouldn't copy binaries to dist folder in releasing CI (#2962) (35122cb)
- side effects detect of destructing array (#2853) (0a21a7c)
- sort NODEJS_PREFIXED_BUILTINS (#2928) (edd63db), closes /github.com/rolldown/rolldown/blob/78749354b8bd65833a2313402f65dc06638d37af/crates/rolldown_common/src/ecmascript/node_builtin_modules.rs#L17
- soucemap file should be a path basename (#2608) (3aa4f0e), closes #2569 /github.com/rollup/rollup/blob/master/src/utils/collapseSourcemaps.ts#L223
- string_wizard: output source map with utf16-based location (#2854) (33e0584)
- support transform returned sourcemap with multiple sources (#2977) (4b28087)
- the buildEnd error should handle js errors (#2973) (2ff6146)
- the defalut value of should be empty object (#2910) (b1c6158)
- top level this substitution (#2978) (da31a86), closes /github.com/evanw/esbuild/blob/d34e79e2a998c21bb71d57b92b0017ca11756912/internal/js_parser/js_parser.go#L12551-L12604
- umd: check name option if chunk has exports (#2717) (bb2042d)
- umd: should ensure exectution if entry module is wrapped (#2839) (ab515a7)
- use objectProperty shorthand for json ObjectExpression when key is a valid identifier name (#2930) (f9591cc)
- use timer instead of watcher worker (#2636) (dc02f3d), closes #2634 #2635
- use_strict: shouldn't care about empty modules (#2844) (ea3f093)
- use_strict: shouldn't care about treeshaked modules (#2843) (caa5e87)
- watcher: handle plugin error (#2855) (4112f3d)
- watcher: only watch same file once (#2700) (bc16ada)
- watcher: run first build after listener is attached (#2782) (0e16a9a), closes /github.com/rollup/rollup/blob/master/src/watch/watch.ts#L54
experimental.viteMode
(#2849) (bf06e41)new URL(..., import.meta.url)
support (#2710) (7c6cbb2)- add
defineConfig
overload (#2689) (51ba546) - Add option moduleSideEffectsRule for
treeshake.moduleSideEffects
(#2695) (66e8088) - advanced barrel exports support computedMemberExpr with static key (#2964) (09579b0)
- advancedChunks: ensure strict execution order if
advancedChunks
enabled (#2620) (78945df) - allow runtime to load non JS configs (#2688) (4eb7e29), closes #2400
- asset: collapse generated sourcemap with original one (#2735) (08f2e5e)
- cli: support abbr
-o
forfile
option. (#2632) (cbfe498) - create module info before run load hook (#2714) (45224c7)
- disable resolve
new URL
to asset behavior by default (#2953) (e126911) - don't normalize options on js side - part1 (#2836) (8e8bf57), closes #2835
- don't normalize options on js side - part2 (#2848) (b73bbba), closes #1041 #1041 /github.com/rolldown/rolldown/issues/1041#issuecomment-2098313025
- don't normalize options on js side - part3 (#2858) (db2f6de), closes #2835
- don't normalize options on js side - part4 (#2870) (db4090b), closes #2835
- drop labels (#2637) (f35e104), closes /github.com/evanw/esbuild/commit/9b83e55e3511c1d108d31ba22f49e675c6eec1b9#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR19
- drop labels node binding (#2639) (8671945)
- dynamic import treeshake
import()
destructing binding pattern (#2722) (ad0940a) - dynamic import treeshaking (#2720) (6ad7b34)
- dynamic tree shake await
ImportExpression
(#2723) (d5e797b) - emit error diagnostic when assign to import (#2701) (c40f531), closes /github.com/evanw/esbuild/commit/394ff827ea819775ab54958e5c316df32a2be0aa#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR56
- enable
inlineDynamicImports
automatically if format isiffe
orumd
(#2808) (172a5a1), closes #2792 - expose
cssEntryFileNames
andcssChunkFileNames
options in js side (#2623) (6f1cfaf), closes #2618 - expose app format option for hmr prototype (#2994) (12d7e71)
- expose closed property and support using for RolldownBuild (#2732) (cce5cde), closes /github.com/rollup/rollup/blob/ae1d14b7855ff6568a6697d37271a5eb4d8e2d3e/src/rollup/types.d.ts#L920
- give a specific error if PluginContext.load is unexpected usage (#2713) (1ad7e05)
- give specific default plugin name (#2929) (f5d9d9c), closes /github.com/rollup/rollup/blob/master/src/rollup/rollup.ts#L167
- give warnings for cycle loading (#2931) (586459c), closes /github.com/rolldown/rolldown/issues/2751#issuecomment-2482397149
- give warnings for input plugin hooks used at output plugin (#2927) (154d96f)
- implement vite resolve plugin (#2658) (6d170b4)
- node/esm: polyfill
require
ifformat: 'esm'
andplatform: 'node'
(#2920) (f1bd92f) - node/rollup-compat: add properties used by Vite to
NormalizedOutputOptions
(#2907) (62a9ed2), closes #2867 #2906 - node/rollup-compat: Be compatable with rollup's
NormalizedInputOptions#input
(#2894) (5150802) - node/rollup-compat: Be compatable with rollup's
NormalizedOutputOptions#format
(#2900) (b5df408) - node: add
OutputOptions#comments
option (#2644) (3912c3a) - node: add one-shot
build
API (#3011) (bf8c326) - node: support
write
forbuild
API (#3014) (745d904) - node: support multiple outputs with one call for
build
API (#3015) (b1c9cf2) - optout
new URL('./foo', import.meta.url)
import (#2753) (1839fd3), closes #2745 - pass normalized fields from rust to js (#2938) (0535a45), closes #2906
- pass the remaining normalized fields from rust to js (#2987) (f1c8656), closes #2906 /github.com/rolldown/rolldown/blob/71e6863f00b9d304a568072d16959082e1e6b17d/packages/rolldown/src/options/normalized-output-options.ts#L40-L41 /github.com/rolldown/rolldown/blob/71e6863f00b9d304a568072d16959082e1e6b17d/packages/rolldown/src/options/output-options.ts#L58-L67
- plugin/replace: sourcemap (#2098) (44a3f02), closes #2057
- plugin/vite-resolve: implement more logics for
createIdResolver
(#2869) (d6cedcb) - polyfill
import.meta.url
whenplatform: 'node'
andformat: 'cjs'
(#2694) (3a1912b) - rust/string_wizard: support
replace
method (#2733) (915d2fa) - rust/test: add
configVariants
to allow to emit multiple output (#2785) (73fce89) - rust: add
comments
option (#2614) (a35faba) - rust: pass
NormalizedOutputOptions
from rust to js (#2899) (ac28e50) - rust: pass
NormalizedOutputOptions
ingenerateBundle
hook (#2902) (87f7277) - rust: pass
NormalizedOutputOptions
inrenderChunk
hook (#2909) (b6dc60a), closes #2902 #2906 - rust: pass
NormalizedOutputOptions
inwriteBundle
hook (#2914) (3ec063f), closes #2906 - rust: support
Comments::PreserveLegalComments
(#2615) (19de25e) - set unspecified platform to
node
if format iscjs
(#2837) (d7adf58) - string_wizard: support hires boundary (#2997) (3a5a13b)
- support
output.hashCharacters
(#2647) (a50a3b2), closes #2646 - support
RenderedModule.renderedLength
(#2697) (146ecd8), closes #2686 - support function for
output.globals
(#2818) (7383e19), closes /github.com/rolldown/rolldown/blob/ab438c355063765640db18cb03b8d08fa2eee39d/packages/rolldown/src/utils/normalize-output-options.ts#L46-L47 - support mark moduleSideEffects at PluginContext.load (#2772) (ba8a5f1)
- support output plugins (#2916) (56a87a0)
- support PluginContext.load (#2687) (6bf4a3f), closes /github.com/rolldown/rolldown/pull/2687#discussion_r1836055076
- TransformPluginContext#getCombinedSourcemap (#2984) (df7e584)
- treated facade default export ref as never get reassigned (#2966) (5e571e4)
- treeshake.annotations (#2856) (ca50acb)
- use
BuildResult
forvalidate_options_for_multi_chunk_output
(#2800) (5fdd14e), closes #2565 /github.com/rolldown/rolldown/blob/d796b1efa9bd973b60e012ff5bccdb05ee157593/crates/rolldown/src/utils/chunk/validate_options_for_multi_chunk_output.rs#L3-L6 - use
satisfies
keyword forInputOptions
andOutputOptions
(#2611) (2863d64), closes #2568 - use better diagnostic for
ReplaceGlobalDefinesConfig
(#2884) (5e804db), closes /github.com/rolldown/rolldown/blob/52e0d11c4e3b655f4d6e76226b2e70086d41de44/crates/rolldown/src/module_loader/module_loader.rs#L89-L96 - vite-resolve-plugin dev support (#2739) (49cc596)
- watcher: handle watcher error (#2702) (078a4ac)
- ast scanner
is_top_level
(#2803) (2be7882) - dedupe meta.dependencies (#2799) (d796b1e)
- improve the String concatenation performance (#2763) (b676fe3)
- lazy json module semantic analyze with stats (#2933) (4b9bd6a)
- rolldown_sourcemap: pre-allocate memory in
join
method (#2766) (6264234) - string_wizard: skip line break mappings (#2998) (a468d5f)
- use fxhash for
DashMap
s (#2971) (33beb44) - use fxhash for
HashMap
s (#2988) (ff1fc6c)
0.14.0 (2024-11-05)
- create
__commonJS
second param on demand (#2314) (5d4fe3e), closes /github.com/evanw/esbuild/blob/9c13ae1f06dfa909eb4a53882e3b7e4216a503fe/internal/linker/linker.go#L4811-L4818 - dicable dce when disable tree shake (#2335) (3778839), closes /github.com/rolldown/rolldown/pull/2322#discussion_r1775296379
- diff custom resolver (#2463) (d16be62)
- don't fail building when transformer emit warning (#2405) (c5b8379)
- load fallback plugin related issues (#2309) (71d16fe), closes #2301 #2302
- module preload-polyfill plugin only intercept
RESOLVED_MODULE_PRELOAD_POLYFILL_ID
(#2261) (df113d5) - preserve identifiier when legitimize identifier (#2530) (a447e32)
- remove none relative path alias replacement (#2289) (5815228), closes #2288
- remove plain import decl if importee is side effects free (#2537) (6fce3c4)
- rolldown concurrent write (#2519) (1197c99), closes #2518
- use is_reserved_keyword_or_global_object (#2222) (ca6a4db), closes oxc-project/oxc#4484
advancedChunks.groups[*].test
should be aRegExp
(#2393) (be3527e), closes #2391eslint/no-unsafe-optional-chaining
violation (#2432) (6c83c39)PluginContext#resolve
should care aboutInputOptions#external
(#2307) (50fa284)- 🐛 align with module repr naming style (#2538) (3be0669), closes /github.com/evanw/esbuild/blob/d34e79e2a998c21bb71d57b92b0017ca11756912/internal/js_ast/js_ast.go#L1800-L1816
- 🐛 crossplatform glob expr (#2441) (5bf9e84)
- 🐛 invalid module repr name (#2221) (6e7fc5b)
- 🐛 order of module namepspace object generation (#2450) (d073abe)
- 🐛 should not always transform default specifier as
default as alias
(#2439) (a2b10d2) - 🐛 side effects path (#2481) (f41d8ae)
- 🐛 typeof side effects (#2435) (832b6ca)
- absolute glob expr (#2323) (35628ed), closes #2299
- alias plugin resolve should relative to
cwd
ratherimporter
(#2262) (ff62f77) - app: create variable default for export defualt expr (#2354) (70ef205)
- avoid loop at call TransformPluginContext#error (#2332) (7c699da)
- avoid panic if content has hash placeholder (#2317) (e0b7987)
- avoid watcher deadlock (#2507) (d054ec2), closes /github.com/rolldown/rolldown/issues/2438#issuecomment-2434691950
- binary op side effects (#2479) (d822812)
- builtin module side effects free (#2599) (517e7b0), closes /github.com/evanw/esbuild/blob/d34e79e2a998c21bb71d57b92b0017ca11756912/internal/ast/ast.go#L130-L131 /github.com/oxc-project/oxc-resolver/pull/291#issuecomment-2454178832
- cli: fix
-s
flag not working in cli & Update cli help info (#2517) (8ad0293) - conditional expr import and require (#2532) (9392957)
- data url guess mime by extension (#2455) (04634dc)
- deconflict asset file name (#2189) (f112a12)
- deduplicate assets if an explicit fileName is not provided (#2245) (5b448c9)
- esbuild-diff: remove temp var when exported variable (#2331) (880937b)
- extend PluginContext with MinimalPluginContext (#2316) (824315d), closes /github.com/rollup/rollup/blob/89a68c2a69eefaaf5544f83367f31d98360354ed/src/rollup/types.d.ts#L237 /github.com/vitejs/vite/blob/08ff23319964903b9f380859c216b10e577ddb6f/packages/vite/src/node/plugin.ts#L81-L84
- filename_template:
[hash:6]
inentryFileNames
does not get replaced with hash (#2238) (ae7ea95), closes #2206 - glob import plugin support
./**.js
syntax (#2313) (17fefa4), closes #2298 - hashbang code generation (#2483) (da393ca), closes /github.com/evanw/esbuild/blob/d34e79e2a998c21bb71d57b92b0017ca11756912/internal/linker/linker.go#L5663-L5673
- iife:
MISSING_NAME_OPTION_FOR_IIFE_EXPORT
is output even if nothing is exported from the entrypoint (#2256) (c0e7b5f), closes #2255 - iife: deconflict inject external symbol (#2328) (7214af6)
- make sure asset reference id could be a valid identifier (#2198) (7752238), closes /github.com/rolldown/vite/pull/27#discussion_r1746521415 /github.com/rollup/rollup/blob/master/src/utils/FileEmitter.ts#L300
- make watcher test stable (#2482) (1e023dd)
- mark some known global constructor as side effects free (#2610) (c0920f2)
- moduleType/json: should trim the utf-8 bom. (#2312) (8b8d7a1), closes #2297
- plugin/replace: fix
object_guards
option (#2322) (3899128) - plugin/replace: fix panic if
object_guards
enabled and simple values (#2318) (940d676) - plugin/replace: set a higher backtrack limit as default value (#2311) (3847e2b)
- plugin: ensure correct execution order (#2602) (26a4031)
- plugin: fix
expand_typeof_replacements
(#2196) (d6233d8) - remove
__toCommonJS
if it is plain require (#2547) (26282e0) - replace unresolved ns member expr with
void 0
(#2347) (a183537) - resolve id return false should mark module as external (#2545) (6aa4503)
- resolve with cwd when context is empty string (#2080) (351d2c7), closes #2067
- rolldown can not write twice (#2477) (0b2e212)
- rolldown: return semantic error from oxc (#2502) (6d66ba5), closes #1494 #1910
- RollupPreRenderedChunk#exports (#2505) (399cac4)
- rust: should keep import for builtin node modules as it is (#2460) (043256e)
- should handle the
-s
for sourcemap. (#2236) (e52ef2f), closes #2225 - should reference importee namespace_object_ref for export all decl (#2585) (58853fe)
- should trim in data url. (#2310) (6e69533), closes #2300
- should use node interop for mjs or type module (#2220) (a1ed56a)
- sourcemap inline should emit sourcemap file (#2237) (dbe5539)
- toplevel class decl rewrite (#2465) (01f0d17), closes /github.com/evanw/esbuild/blob/d34e79e2a998c21bb71d57b92b0017ca11756912/internal/js_parser/js_parser_lower_class.go#L2028-L2043 /github.com/evanw/esbuild/blob/d34e79e2a998c21bb71d57b92b0017ca11756912/internal/js_parser/js_parser_lower_class.go#L2277-L2283
- update the rollup external test status (#2543) (536638d)
- use "__require" instead of "require" if the format is not
cjs
(#2525) (829e36d)
- add jsx related options in rust side (#2454) (a43d19c)
- add css module type to output options (#2464) (c19f7b8)
- align with
repr_name
with esbuild (#2285) (930d1bc) - app: add __esModule flag for esm module (#2201) (34191b8)
- app: detect interop (#2218) (1d41e7d)
- app: rewrite export all declaration (#2215) (bf43fa8)
- app: rewrite export default declaration (#2210) (c2be668)
- app: rewrite export named declaration (#2211) (34bf002)
- app: rewrite require call to module stable id (#2268) (0e949fb)
- app: should rewrite symbol reference from external module (#2350) (f75063c)
- app: transform export named declaration (#2270) (952d126)
- asset: generate correct path for imported asset modules (#2573) (efb48dd)
- Calling bundle.write multiple times with different output options (#2535) (92948a4)
- check resolved failed module is external with isResolved ture (#2570) (41782cd)
- cjs/output: generate proper property access pattern for exports (#2283) (c85538e)
- cli: call watcher close at process exit (#2550) (33b2880), closes /github.com/rollup/rollup/blob/master/cli/run/watch-cli.ts#L31
- cli: support simple watch option (#2413) (7ab8722)
- conditional
commonJSMin
andesmMin
(#2346) (ceacea3) - css: add
CssAstScanner
(#2366) (f1e4907) - css: css module participate making module graph (#2419) (748add4)
- css: emit css asset (#2250) (d2fc33a)
- css: should remove
at-import
statements in output (#2423) (5b6497d) - emit watcher event (#2451) (5375ed9)
- export jsx related options (#2443) (a881cf1)
- export transform related options (#2362) (399a25f)
- expose
moduleType
type (#2217) (2685a07) - expose
resolve#extensionAlias
option (#2337) (15c41fa), closes #2327 - first-class asset support (#2539) (39d62f7)
- format umd (#2489) (a6edd11)
- node/experimental: add
disableLiveBindings
option (#2282) (c56991c) - node/hook-filter: improve dx of writting filter (#2542) (826b920)
- node: support
output.file
option (#2567) (378692a) - output/cjs: on demand shorthand export pattern (#2383) (e6164b1)
- plugin/transformer: support
targets
key for options. (#2242) (7dcfefc) - print friendly msg for watch rebuild (#2533) (cb9a52d)
- rolldown: add meta for plugins (#2365) (3d6db96)
- rust/test: show filename of binary files in snapshot (#2561) (9f9689d)
- rust: add
checks
options to control if to emit some warnings (#2192) (b110ec3) - rust: add
CssView
(#2248) (7952415) - rust: add
ModuleType::Css
(#2247) (7531196) - rust: add
rolldown_std_utils
crate to store utils/extensions for the rust std library (#2372) (2481251) - rust: move
string_wizard
to the repo (#2572) (2ace0eb) - rust: support
file
option (#2565) (cda7c35) - rust: use
SymbolRefDbForModule
while scanning oxc AST (#2380) (d8b07cc) - sourcemap: Add support for injecting Debug IDs (#2516) (0f1e936)
- support
css
module type in dataurl. (#2272) (00e6edd) - support basic watch mode (#2396) (ec2092c)
- support closeBundle hook (#2197) (648f688), closes /github.com/rollup/rollup/blob/master/src/rollup/rollup.ts#L80 /github.com/rollup/rollup/blob/master/src/rollup/rollup.ts#L95
- support closeWatcher hook (#2444) (e5c8b2f)
- support css url import dependency (#2598) (829d80a), closes /github.com/rolldown/rolldown/blob/63875e40b7687f9917b70556c23f60e925b111aa/scripts/snap-diff/stats/aggregated-reason.md#L114-L114
- support PluginContext addWatchFile (#2461) (2955349)
- support watch notify option (#2471) (6d5f416)
- support watch.skipWrite option (#2466) (883b85d)
- support watchChange hooks (#2412) (7bea9f1)
- warning diagnostic import-is-undefined (#2358) (00fa6ff), closes /esbuild.github.io/try/#YgAwLjIwLjIALS1idW5kbGUgLS1taW5pZnk9ZmFsc2UgLS1mb3JtYXQ9ZXNtAGUAZW50cnkuanMAaW1wb3J0ICogYXMgbnMgZnJvbSAnLi9mb28uanMnCgpjb25zb2xlLmxvZyhucy5kZWZhdWx0KQoKAABmb28uanMALy8gZm9vLmpzCmV4cG9ydCBjb25zdCBhID0
- watch include exclude (#2484) (1fa5d4b)
- watcher close (#2436) (b77d787)
- plugin_replace: set more reasonable number for regex
backtrack_limit
(#2202) (3874566) - plugin/replace:
expand_typeof_replacements
avoid temporary vecs (#2321) (84cb2a2) - plugin/replace:
expand_typeof_replacements
use regex crate (#2320) (22b43cd) - replace plugin (#2356) (d3e9b9c)
- rolldown_sourcemap: remove many unnecessary memory allocations (#2596) (12b112f)
- rolldown: use
SemanticBuilder::with_stats
when running semantic analysis on same AST twice (#2230) (7220e80), closes #2227 - union find path compression (#2399) (ea56d8d)
0.13.2 (2024-09-06)
- node/advance-chunks: support global fallback for
minSize
,minShareCount
(#2178) (78c7750) - node/advance-chunks: support passing
minSize
,minShareCount
(#2177) (3c95d30) - rust/advance-chunks: support
min_share_count
option (#2176) (689cbc2) - rust/advance-chunks: support
min_size
option (#2175) (1e9c2d9)
0.13.1 (2024-09-05)
process.env.NODE_ENV
inside paren expr (#2153) (fddb2f5)- 🐛 make
examples/rollup-plugin-esbuild
build successfully (#2164) (49f2d83), closes #2163 - mark knownGlobals global ident and global member access as side effects free (#2154) (00ff45d), closes /github.com/evanw/esbuild/blob/9c13ae1f06dfa909eb4a53882e3b7e4216a503fe/internal/config/globals.go#L30-L850 /github.com/evanw/esbuild/blob/9c13ae1f06dfa909eb4a53882e3b7e4216a503fe/internal/config/globals.go#L940-L961
- module type mapping (#2151) (c2e77b5)
- rolldown: remove
console.log
(#2145) (d24c337) - rolldown: side effect detector mark
+1
-1
as number literal (#2162) (40ae24d)
- node/rolldown: support
OutputOptions#advancedChunks
(#2167) (851475d) - rust/advance-chunks: A module could be catched by multiple match groups (#2155) (071efd8)
- rust/advance-chunks: rework with new API deisgn (#2146) (6339062)
- rust/advance-chunks: should include matched module's dependencies too (#2161) (a557b51)
- rust/advance-chunks: support
test
using regex (#2152) (b7b2ac5)
0.13.0 (2024-09-03)
- incorrect point free function call (#1697) (4fb7ab6)
- JSON.parse() should not have side effect (#2029) (4ca169c)
- share replace global define config (#1902) (eee1db0)
- should not compose if there is only one pending plugin (#1781) (f3e4933)
- should not url encode when plain text (#1724) (779f16d)
- 🐛 auto guess module type when load hook no specify (#1930) (7d36481)
- Add namespace for each builtin plugin (#1931) (43f863b), closes /github.com/rolldown/vite/blob/3bf86e3f715c952a032b476b60c8c869e9c50f3f/packages/vite/src/node/plugins/dynamicImportVars.ts#L174-L174
- Allowing gcc builds on windows (#2034) (e6b9f14)
- avoid panic if member expr referneced to non-namespace symbol (#1784) (3d30284)
- avoid take first chunk if bundle is empty (#1887) (03f6dc9)
- base64 handling (#1725) (af95809)
- chained reexport star cjs (#2100) (04a8bba)
- circular ref in rolldown package bundle (#1849) (3c3cb83)
- cjs: aovid generate assgin pattern if chunk imports nothing (#1959) (32c3363)
- cli:
rolldown -c
should not print help messages (#1993) (a82ccc6) - cli: should not hang if error occured (#2035) (8e0cb61), closes #2033
- collect depended_symbol when
canonical_ref
hasns_alias
(#2095) (ab6b043), closes #2079 - collect-dependends-symbol (#2079) (0205983), closes #2038
- dedup export all external in entry module (#1786) (3eba8a3)
- ensure ordering of assign chunk name (#1981) (7ac1381)
- ensure referenced symbols by entry point chunk got deconflicted (#2094) (dc98faa), closes #1722 #2085
- entry chunk should be at first (#2089) (8b7734e)
- eval warning should only emit when used as callExpr (#2054) (e350abe)
- experimental: wrong
transform
behavior after composing (#1701) (3a1f216) - external module side effects should respect hook returned side e… (#2068) (0f9391b)
- fix
absolute_preliminary_filename
not takingoptions.cwd
into account (#1935) (6b6d713) - foramt/cjs: preserve semantic of entries exports even in wrapped (#1788) (b79e7e0)
- format/cjs: exported bindings should be lived. Part1 (#1791) (17ca21d)
- format/cjs: should keep live bindings for common chunks (#1805) (145f105)
- format/cjs: support
cjs-module-lexer
forexport * from 'external'
(#1854) (de1f5f5) - generate valid file name for virtual module chunk (#1782) (d041e08)
- guessing module type (#2086) (aa5b528)
- index_cross_chunk_imports should including share chunk (#1890) (290ecc7)
- move
banner
ahead of the file incjs
format. (#1707) (2640072), closes #1706 #1705 /github.com/rolldown/rolldown/pull/1705#discussion_r1689236056 - node/compose-plugins: Plugin that uses
order
meta is considered as not composable (#1943) (ebfebf3) - node/composePlugins: ensure correct semantic of
PluginContext#resolveId
of all hooks (#2050) (f19b6c7) - node/plugin: ensure order for generateBundle and writeBundle hooks (#1913) (b7e1d90)
- node/rolldown: mark all tsfn as weak to avoid long exit time (#2135) (06b578c), closes /github.com/rolldown/rolldown/pull/985#issuecomment-2081384205
- packages/rolldown: export
package.json
(#2048) (5aa76dc) - pass
output.globals
to Rust side. (#1912) (bd84267) - perform percent encoding to reserved chars in dataurl. (#1729) (d75e77c), closes #1406 /datatracker.ietf.org/doc/html/rfc3986#section-2
- plugin/replace: handle backtrack limit exceeded error (#2088) (33fca46), closes /github.com/rolldown/rolldown/pull/2056#issuecomment-2316570663
- remove name assignment in IIFE that doesn't have export. (#1900) (13f4adc)
- remove napi deferred_trace feature (#2018) (b99f74e)
- remove redundant code in
export * from 'external'
for esm format (#1974) (2eb06ef) - remove ts expect error (#1817) (3153a61), closes #1811
- reserve
reserved-key
in json module type. (#1746) (7243165), closes oxc-project/oxc#4484 - resolve conflict
exports
key inCJS
andIIFE
. (#1837) (2953b90), closes #1836 #1623 /github.com/rolldown/rolldown/pull/1694#issuecomment-2245219042 #1623 - rolldown: fix inject test where
alias
can be a member expression (#1934) (c5aafad), closes /github.com/rollup/plugins/blob/8550c4b1925b246adbd3af48ed0e5f74f822c951/packages/inject/src/index.js#L125 - rolldown: should correct rewrite path of dynamic imported external modules (#1738) (c682b76), closes #1723
- rust/rolldown: prevent segment fault in
generate_bundle
by removing unsafe code (#1905) (9802478) - same filenames cause bundle error (#1984) (c4aca98), closes #1944 /github.com/rolldown/rolldown/issues/1944#issuecomment-2282812102
- should also care for
Chunk#name
for common chunks (#2123) (a1fa701) - should call write_bundle after write bundle to disk (#1844) (475f765), closes /github.com/rollup/rollup/blob/master/src/rollup/rollup.ts#L194-L200
- should correctly include symbols of namespace object (#1727) (3dee9e0)
- should generate
export * from ...
in entry chunks rather than entry modules (#1783) (954dd2a) - should not panic if there are accessing on
star as
member (#1730) (250c11a) - sourcemap inline url should relative to asset file (#2099) (6b5d7dc)
- strict emit warning
commonjs var in esm
(#2101) (4c9feeb), closes /esbuild.github.io/try/#YgAwLjIzLjEALS1idW5kbGUgLS1taW5pZnk9ZmFsc2UgLS1mb3JtYXQ9ZXNtAGUAZW50cnkuanMALyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBleHBvcnRzYC4gKi8KdmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzOwoKLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqLwp2YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7CgovKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqLwp2YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0czsKCi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqLwp2YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0 - treeshaking:
require
should consider as having side effects (#1949) (28e53d6) - typo of
transform-plugin-context.ts
(#1991) (b2590fd) - undefined export var (#2055) (6832084), closes /github.com/evanw/esbuild/blob/9c13ae1f06dfa909eb4a53882e3b7e4216a503fe/internal/js_parser/js_parser.go#L10047-L10050
- using sanitize_file_name to generate valid file name (#1833) (c9f8af4)
- add dynamic_import_vars plugin (#1732) (40cf58b)
- add invalid export option to generate diagnostic (#1692) (ef718d7)
- add LoadOutput#ModuleType binding (#1998) (1469985)
- add manifest plugin (#1839) (8288370), closes #1826
- add module type to transform hook (#1907) (159a155)
- add module_preload_polyfill plugin (#1840) (0651db0)
- add originalFileName to EmittedAsset (#2046) (6facb04)
- add query after each glob file name (#1838) (bd97d60)
- add some warnings in IIFE and CJS. (#1857) (e7916ab), closes #1855
- add support for banner as str (#1810) (12d6a75)
- add support for footer as str (#1819) (48dc08e)
- add support for intro as str (#1820) (2c7e4f4)
- add support for outro as str (#1821) (46d56c4)
- add use strict for iife (#1705) (abe17bd)
- add wasm fallback plugin (#1957) (3645f38), closes #1919
- alias plugin (#2001) (872bf3a), closes /github.com/rolldown/vite/blob/c1d60d11158318ae8ccaef873b6dc55d0a2f3c66/packages/vite/src/node/plugins/index.ts#L62-L65
- align cli options with unix ux patterns. (#1977) (c820678), closes #1924
- align generated chunk name with rollup (#2124) (0bec3bc)
- align OutputOptions#esModule with rollup (#1898) (c14406f), closes #1888 /github.com/rolldown/rolldown/blob/e0751e4db539ce8e25ca8f31bb027475a0dd9e98/crates/rolldown_binding/src/options/binding_output_options/mod.rs#L37-L38
- allow passing array of array in
config.plugins
(#1938) (b4e33d5) - allow rewrite
moduleType
in transform Hook (#1916) (cef3e57) - assignment expr side effect detector (#2004) (dde9b33)
- build import analysis plugin (#2051) (9e461c2)
- commonjs-variable-in-esm diagnostic (#1832) (ffd4533), closes /github.com/evanw/esbuild/blob/main/CHANGELOG-2022.md#01411
- compose addon hooks (#2007) (08b6360), closes #1999
- css/wip: add
css_entry_filenames
andcss_chunk_filenames
(#1678) (bc1c22e) - enable plugin api typing (#1765) (512fc61)
- error: entry cannot be external (#1761) (b3179e7)
- experimental: builtin replace plugin (#2056) (f1e7ed0)
- experimental: support
enableComposingJsPlugins
option (#1693) (7aa56fe) - gracefully shutdown the process when panic in
fetch_all_modules
(#2036) (c85883b), closes #2033 /github.com/rolldown/rolldown/blob/8e0cb613e4dd50b5f70a4a648ad72d243b80a432/crates/rolldown/src/module_loader/module_loader.rs#L286-L288 /github.com/rolldown/rolldown/blob/8e0cb613e4dd50b5f70a4a648ad72d243b80a432/crates/rolldown/src/module_loader/module_task.rs#L60-L62 - hook filter (#2047) (6039415)
- implement the rest branches in side effect detector (#2009) (ef084bf)
- import build analysis builtUrl (#2075) (0cf4345), closes /github.com/rolldown/vite/blob/56476ffabc182eb7bb735c192156069f52838956/packages/vite/src/node/plugins/importAnalysisBuild.ts#L346-L350
- improve resolve error (#2076) (ea4965f), closes #2033
- json plugin (#1951) (d221ecc)
- load fallback plugin (#1922) (3ea6797)
- module preload config skip (#1845) (f55cfda)
- node/composingJsPlugins: support
resolveId
hook (#2021) (55c20b0) - node/rolldown: add empty
PluginContext#addWatchFile
for shim (#1972) (559b424) - 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 - packages/rolldown: export
VERSION
(#2049) (806718d), closes /github.com/rollup/rollup/blob/3eb88175f687193e8a73e681dc1fbd6bd48201a2/src/node-entry.ts#L1 - 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
- provide more friendly diagnostics if could not read path from a resolveId hook (#1866) (690a63f), closes #1851
- rolldown_ecmascript: implement into_assignment_target ObjectPattern (#1921) (305f7cb), closes /github.com/rolldown/rolldown/blob/13f4adc8b1a2bc26591a25df6aef14fe855f8fa5/crates/rolldown_ecmascript/src/ext/mod.rs#L61-L63
- rolldown: bump oxc to v0.25.0 (#2042) (71d8201)
- 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)
- rust: ensure span uniqueness of oxc AST (#1927) (9f164c6), closes /github.com/rolldown/rolldown/pull/1899#issuecomment-2274936578
- rust: support
advanced_chunks
option (#2115) (1a81db2) - rust: support
define
functionality (#1882) (8639e70) - 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)
- tree-shake: treeshake unused cjs module (#1744) (138dd25)
- treeshaking: only reference
__reExport
if needed (#1987) (4cac925) - upgrade oxc (#1823) (540ee47)
- ⚡️ reduce lock contention (#2072) (80dc48d)
- ⚡️ remove extra collection when using rayon (#2016) (7442d95)
- ⚡️ use base64-simd to accelerate calc base64 (#1716) (30b6d0f)
- ⚡️ use map store next count for chunk name (#1948) (eb78b81)
- dataurl (#1734) (e81f853), closes /github.com/evanw/esbuild/blob/360d47230813e67d0312ad754cad2b6ee09b151b/internal/helpers/dataurl.go#L54-L56
- deprecate
mime_guess
in favor of a lighter guessing function. (#1698) (cbcb511) - improve generate_namespace_definition (#1986) (d90802f), closes #1861 /github.com/rolldown/rolldown/blob/745c1a57e66433df7182b5f9f4aa65aa00aa001b/crates/rolldown/src/ecmascript/format/utils/namespace.rs#L49-L51
- rolldown: only recreate semantic data when ast is changed in pre_process_ecma_ast (#2113) (b984da0)
- rolldown: use
itoa
for integer to string conversion (#2107) (c916947) - rust/define: only do define operation if needed (#1884) (394a5f3)
- rust/scanner: only reference
member_expr
related to symbols of import statements (#1815) (f4d288c) - sourcemap: do not allocate
ConcatSourceMapBuilder
unconditionally (#2078) (e7c2bff) - sourcemap: pre-allocate concat sourcemap builder (#1885) (d19beb4)
- use
simdutf8
to validate UTF-8 when reading files (#2040) (94cb434) - use itoa for integer to string conversion (#2108) (70a7e80), closes #2107
0.12.2 (2024-07-23)
- external warning in dce/disable-tree-shaking (#1659) (401dd61)
- correct the behavior in texture or empty extension-customized file. (#1668) (c6fccc8), closes /developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs#datatexthtml3cscript3ealert2827hi27293b3c2fscript3
- node: fix type errors (#1642) (f6a8d51)
- reexport star of a external module should be considered have side effect. (#1675) (ab8dda5)
- should include the dependencies if the module only has re-export… (#1683) (60348ee)
- support banner/footer sync function (#1657) (42d9241)
- the crate rolldown_ecmascript's test can't pass (#1672) (627e81f), closes #1671
- better error report for ambiguous export (#1661) (6e53db7), closes #1643
- convert parsing errors of oxc to rolldown's errors with friendly messages (#1670) (44e29cd), closes #1630
- rust: Support accepting custom
ModuleType
(#1632) (9f244db) - support
output.exports
option. (#1680) (72abdfc), closes #1628 - support banner hook (#1419) (0631292)
- support output.name for iife (#1627) (159d4ad), closes /github.com/rollup/rollup/blob/master/src/finalisers/index.ts#L36
- throw friendly warning message for ambiguous export (#1634) (d03e15b), closes #1621 #397
- wip/css: use lightningcss as css compiler (#1629) (08aecad)
0.12.0 (2024-07-14)
- align using declaration side effects detection with esbuild. (#1593) (e7747fc)
- class property and object key side effects detection (#1599) (46f0ec9)
- chunk modules should include empty module (#1583) (4790d46)
- iife wrapper (#1584) (593e87e)
- InternalModuleFormat typing (#1580) (c166094)
- mixed multi declarator tree shake (#1566) (1971e3b)
- multi declarator tree shake (#1564) (0cf1c22)
- object property tree shake (#1608) (3536f00)
- remove unused pure comment call (#1597) (42becf0)
- template literal side effects (#1594) (7b011df)
- experimental: support strict execution order (#1568) (0303f1f)
- node: support
OutputOptions#minify
to minify js output (#1617) (bcc4edc) - output: support emit output of iife format (#1570) (7c9d537), closes /esbuild.github.io/try/#YgAwLjIzLjAALS1mb3JtYXQ9aWlmZSAtLWJ1bmRsZSAtLW91dGRpcj0iZGlzdCIAZQBlbnRyeS5qcwBpbXBvcnQoIi4vY2pzIikKaW1wb3J0KCIuL2VzbSIpLnRoZW4oKG0pID0
- support OutputAsset#name (#1586) (39a47dc)
- avoid unnecessary allocation (#1576) (c609929)
- don't clone the content while hashing (#1613) (11dc8d8)
0.11.1 (2024-07-09)
treeshake.moduleSideEffects
treeshake typing (#1559) (5ce9f67)- add
dataurl
in json config syntax. (#1536) (ddee952) - eliminate unused external module import stmt (#1558) (cdd83fd)
- optional TransformResult#code (#1544) (15ce3ae)
- sourcemap: avoid remapping if renderChunk hook not return map (#1545) (3e13785)
0.11.0 (2024-07-05)
- add issues template (#564) (4f0a484)
- cjs: make output compatible with cjs-module-lexer (#1525) (f0de5f8)
- core: make sure
Semantic
up-to-date after transforming (#1531) (a660554) - export tranform for oxc transformer (#1502) (679a8cb)
- glob import plugin (#1510) (0aaa5ce)
- simple binary expr folder (#1470) (ef8709a)
- support
dataurl
module type. (#1367) (b27b0b0), closes #1299 #1406 - support constant folding (#1401) (5df84a8)
- support PluginContext#getModuleInfo (#1408) (ab7d550)
- rolldown: avoid calling
f64.to_string()
(#1481) (f90969a) - rolldown: build oxc semantic data only once (#1506) (fa347b3)
- rolldown: replace
HASH_PLACEHOLDER_RE
with simple string parsing (#1496) (aa347f5) - rolldown: use
sort_unstable
variants (#1469) (151d8c7) - rust/renamer: new deconflict strategy (#1461) (fa866eb)
- rust: don't use regex on
legitimize_identifier_name
(#1477) (18bc668) - rust: reduce operations
legitimize_identifier_name
(#1478) (3d816d5)
0.10.5 (2024-06-27)
forbid_const_assign_when_lowering_using
test (#1413) (0d15f0e)- cjs: handle
export * from 'external'
correctly (#1363) (9dbb803) - cjs: should not panic if wrapped esm module
export * from 'external'
(#1450) (c62a512) - core: don't panic on require calls that are invalid to bundler (#1445) (5fb31d0)
- deps: update dependency @codemirror/view to v6.27.0 (#1347) (c6e1937)
- deps: update dependency @rollup/plugin-commonjs to v26 (#1353) (7dbbfbc)
- docs: update requirement of node version in contribution guide (#1345) (0d979b6)
- export some typing (#1405) (c42f7b3)
- option hook can be async and can return overwritten input options (#1422) (38a2c3e)
- outputOptions hook argument should be OutputOptions (#1430) (472848b)
- resolver: ensure we always pass an absolute path to oxc_resolver (#1442) (3ffe43f)
- rolldown typing (#1387) (440e68e)
- rolldown_fs: canonicalize polyfill on wasi platform (#1436) (2530866)
- add assetFileNames binding (#1360) (c86f784)
- advanced barrel exports optimization. (#1374) (33a6db5)
- core: ensure input item always have a name (#1407) (0e6afa2)
- export more typing (#1420) (9854330)
- export more typing to compat rollup (#1418) (949c819)
- inner: add
NormalModule#module_type
(#1448) (449dcce) - mark
PluginContext#parse
as unsupported (#1289) (aef45e0) - ModuleType: support
empty
(#1369) (cb3bf33) - move dependency (#1381) (1f70a4c)
- node: expose the
moduleTypes
option (#1451) (39f16e2) - oxc v0.15.0 (#1415) (39761b0)
- rust: add
AllocatorExt
trait (#1350) (fa4262c) - support
outputOptions
hook (#1339) (176ca26) - support base64 loader (#1352) (16d5938)
- support binary loader (#1365) (8f2e07b)
- support emit binary asset (#1359) (cfc16e8)
- support PluginContext emit asset (#1349) (da183aa)
- support RenderedChunk#name (#1421) (a64e78f)
- tree shake module side effect (#1395) (6df56a9)
- wasm plugin (#1368) (65ec42c)
0.10.4 (2024-06-04)
- add return source logic when file not downloaded and add loader … (#1287) (103b8e5)
- cjs: distinguish if symbols are referenced by chunk or modules (#1316) (75c69b3)
- cjs: should render runtime module before generated imports (#1335) (94b1371)
- deps: update dependency debug to v4.3.5 (#1296) (95460de)
- app: rewrite static import (#1323) (68c6592)
- app: use
IsolatingModuleFinalizer
for app output (#1317) (92bfe2d) - cjs: add
__esModule
flag (#1313) (d892948) - cjs: add
"use strict"
if possible (#1284) (bf3f86e) - output: make output folding-friendly using
#region
(#1330) (ace105c) - plugin: support
options
hook (#1275) (fc94245) - plugin: support return
sideEffect: 'no-treeshake'
(#1293) (283a58c) - remove
use strict
while emitting esm output (#1283) (79fbbd4) - rust/options: add
BundlerOptions#loaders
(#1280) (804df07) - rust: deny invalid parsing code (#1310) (5be6ffb)
- support text loader (#1302) (b0f19c1)
0.10.3 (2024-05-29)
- cjs: only wrap entry cjs modules conditionally (#1164) (97d50b5)
- cjs: should keep correct esm semantic in importing external modules (#1172) (4c6a63a)
- cli: Improvements to more brandaly CLI (#754) (c07c3ed)
- deps: update dependency @types/lodash to v4.17.3 (#1145) (52e733d)
- deps: update dependency @types/lodash to v4.17.4 (#1147) (73e6d81)
- deps: update dependency esbuild to ^0.21.0 (#1049) (5578516)
- deps: update dependency esbuild to v0.21.1 (#1053) (562a7e2)
- deps: update dependency esbuild to v0.21.3 (#1139) (68f44ff)
- deps: update dependency execa to v9 (#1069) (6680a14)
- deps: update dependency execa to v9.0.2 (#1078) (db1be3d)
- deps: update dependency execa to v9.1.0 (#1110) (c2b6818)
- deps: update dependency vue to v3.4.27 (#1048) (cf87c5d)
- deps: update dependency zod to v3.23.8 (#1068) (7fef82c)
- deps: update dependency zx to v8.1.0 (#1120) (7558600)
- deps: update dependency zx to v8.1.2 (#1255) (4ab44ed)
- deps: update minor dependencies (#1257) (00564af)
- deps: update patch dependencies (#1060) (8a24ba9)
- deps: update patch dependencies (#1073) (ec7ae9a)
- deps: update patch dependencies (#1104) (cdd981e)
- deps: update patch dependencies (#1215) (6022624)
- deps: update patch dependencies (#1246) (f4bd84f)
- doc: correct link and fileName in documentation (#1241) (afd37ef)
- ensure chunk order (#1135) (975e884)
- esbuild case test_common_js_variable_in_esm_type_module (#1183) (f11a717)
- generateBundle and writeBundle compat to rollup (#966) (4a45b2d)
- node/cli: exit process after bundling (#1097) (9a91687), closes #985
- node/rolldown: CIRCULAR_DEPENDENCY warnings. (#1232) (56320ab)
- node: should call hooks with await (#950) (1c5c7d5)
- normalize windows path for sourcemap sources (#941) (bf9bbe1)
- resolve: care about
browser
field while targetingbrowser
platform (#1075) (936a6ab) - resolve: treat builtin modules as external by default while targeting
node
platform (#1190) (8d088d8) - rewrite dynamic import to correct entry chunk (#1195) (d242f3e)
- rolldown/hash: caculate hash by scanning actually used dependencies and also prevent hash collision from different chunks that have the same content (#1141) (130013b)
- rust/resolve: should point to the correct resolved external module with alias (#1253) (4667d32)
- rust: cacluate order of import chunks by global module execution order (#1206) (c9acb39)
- rust: remove not existed member method (3134b77)
- should generate correct chunk import path to importee in importer chunk (#1180) (8190a5c)
- test_package_json_browser_no_ext (#1093) (82e77a1)
- test_package_json_browser_over_main_node (#1107) (e863b43)
- test_package_json_type_should_be_types (#1184) (63384bd)
- tree_shaking: determine indirect side effects (#1213) (1003174)
- tree-shaking: module should consider having side effect if it's dependencies have side effect (#1205) (b235a38)
- typo (#1175) (6b0bbe7)
- using path as sourcemap path (#946) (bc0934b)
- add ModuleInfo isEntry (#988) (a5d0a45)
- add ModuleInfo some fileds (#973) (040f27d)
- add onLog option (#1203) (773024e)
- add OutputChunk#preliminaryFileName (#1096) (49a134a)
- add plugin context info/warn/error/debug (#1051) (1a9532d)
- add TransfromPluginContext debug/info/warn/error (#1176) (9e4dfa8)
- bootstrap Rolldown with Rolldown (#1211) (10a7d97)
- bump oxc to v0.13.1 (#1208) (fea76c9)
- derive side effects from package json (#1103) (9a17694)
- error: emit diagnostics for missing export (#1238) (0b04591)
- mutate
Output
andOutputChunk
(#1082) (430d642) - node/plugin: support
PluginContext#resolve
(#1102) (5bcf3ed) - node/rolldown: support cjs output (#1202) (e13d865)
- parallel plugin handle error in worker (#986) (ff1286c)
- rust/bundler_options: add output format
app
(#1242) (33f0a49) - rust: add
NormalModule#stable_resource_id
(#1112) (54b76bf) - rust: improve error message of unknown return value of
JsCallback
(#970) (c749dce) - rust: introduce
Loader
concept (#1193) (b530331) - rust: render external imports after normal imports (#1171) (f102cc0), closes /github.com/rolldown/rolldown/blob/5c3b4fbb732dda092bc5298b2ad1b85786735977/crates/rolldown/tests/esbuild/import_star/re_export_star_as_external_common_js/artifacts.snap#L19-L20
- rust: store
package.json
inNormalModule
(#1170) (e9938d9) - rust: support basic cjs output (#1026) (3ee1010)
- support
[hash]
inentry_file_names
andchunk_file_names
(#929) (0546001) - support
resolveDynamicImport
hook (#981) (37ef30d) - support augmentChunkHash hook (#1258) (4520a81)
- support basic ``moduleParsed` hook (#908) (3d2bbc4)
- support bundling
.json
files (#1194) (b997019) - support delete OutputBundle item (#1083) (b933892)
- support hook module side effects (#1229) (c6939e5)
- support OutputChunk#dynamicImports and RenderedChunk#dynamicImp… (#1002) (16e6ea1)
- support OutputChunk#imports and RenderedChunk#imports (#999) (76a0f3f)
- support sourcemapIgnoreList (#916) (9795d0a)
- support sourcemapPathTransform option (#920) (3ebf0ad)
- support TransformPluginContext#getCombinedSourcemap (#1121) (e02e257)
- support using unicode as import/export name (#1196) (2c03032)
- treat unresolved module as external by default and emit warnings (#1087) (985f497)
- tree_shaking: pure annotation (#1225) (d7d2284)
- using onLog option export rust side warnings (#1204) (4fb5116)
0.10.2 (2024-04-17)
- buildEnd hook handle error (#902) (bc8e9ab)
- ci: cargo bench should install critcmp (#899) (0169bfe)
- normalize original sourcemap sources (#765) (679a9ac)
- passing
BindingResolveOptions#alias
from js to rust with maintaining order (#798) (2f3d865) - remapping sourcemap from transform hook (#755) (43242f4)
- rust/resolver: use selected resolver instead of the default one (#780) (226df5b)
- sourcemap sources path relative to output file dirname (#758) (7f5047f)
- add
InputOptions#platform
(#751) (97ea4b6) - Allow pass tsconfig to
oxc-resolver
viaInputOptions#resolve#tsconfigFilename
(#767) (c304a0d) - emit warning for circular dependency (#839) (6d64a64)
- improve side effect detector (#807) (b948cf6)
- node/plugin: support
renderStart
hook (#833) (c1194e6) - rolldown: introduce rolldown_rayon (#846) (4f9ae49)
- rolldown: support compile to wasi (#467) (da45d40)
- rust: only derive
deserialize
onBundlerOptions
in testing (#880) (06df20d) - rust: collect circular dependencies while sorting modules (#830) (c092e0b)
- rust: improve alignment of resolve behaviors with esbuild (#759) (e9d7717)
- support
entryFileNames
andchunkFileNames
(#777) (50da487) - support
InputOptions#shimMissingExports
(#772) (2c84963) - support
renderError
hook (#900) (b9c9181) - support disable warnings using
InputOptions#logLevel
(#859) (f90bbb0) - support render chunk hook normalzied output options (#795) (709aca7)
- support return sourcemap in render chunk hook (#776) (0d4c2d5)
- support running Js plugin in parallel via Worker (#825) (cff55de)
- tree_shaking: shake unused import variables (#771) (6714dd0)
- avoid unnecessary clone in
AddonFunction
(#822) (f814c3e) - rolldown: use starts_with instead of regex in resolve (#878) (93dc6ce)
- sourcemap: search lines count at parallel (#806) (267fc2a)
rolldown
node api should create graph (#302) (c7749ba)- A
Symbol
should only be declared in one chunk (#338) (340cd27) - add identifier for export default function without identifer (#81) (e84cde7)
- add stmt info declare symbol for resolution found symbol (#91) (50e191a)
- align with rollup, change
output.format: 'esm'
tooutput.format: 'es'
(#625) (70b6cfd) - allow cjs to be both entry and dependency (#336) (d53155b)
- async_scope_block_on (#210) (51f1be1)
- bench/ci: use correctly github repo token (049566e)
- binding: only panic in the main thread (#507) (d844125)
- build script pkgName parsing error (#546) (0d6582f)
- bump to
[email protected]
(1af4b86) - ci release (#428) (483e533)
- ci: don't forget to checkout (fc231b8)
- ci: fix
release-canary.yml
(6fc0430) - ci: fix testing in
release.yml
(#651) (6e68b1a) - ci: need to checkout for using local actions (bb87f9a)
- clean up render exports from external module (#394) (e51a69a)
- cli: Make the CLI output color correctly (#645) (c19c8dc)
- cli: normalize provided config path to satisfy esm-loader in windows (#658) (be0540d)
- clippy (#4) (f028cff)
- conflict between imported and local binding (#356) (7387e35), closes #355
- correct id in transform hook (#473) (7af0262)
- correct the TS type of the banner ts-binding (#689) (a072a00)
- deconflict export named declartion (#386) (21aaa36)
- deconflict for duplicate canonical names (#365) (eebea46), closes #364
- defonflict export default function (#385) (518aa5f)
- determine call expression result is used to render require call (#144) (85224ea)
- don't rename symbols that show many times. Fixes #419 (f985755)
- duplicate dynamic entries (#380) (6067e74)
- dynamic import as entry (#366) (8d33829)
- dynamic import chunk is_entry should be false (#361) (6f2b75a)
- ensure valid output for import the same cjs twice (#323) (87b5000)
- expect msg (#456) (11e5598)
- export rolldown compat types (#337) (3efa4fd)
- fix typo in README.md (#443) (8ad8174)
- generate local symbol for esm import cjs instead of reference cjs namespace symbol (#141) (5c53415)
- hoist statements. Fixes #418 (276bbae)
- hoisted import declaration (#80) (569409d)
- hoisted top level scope declartion for wrapped esm (#387) (ec20c03)
- invalid output for conflict global and local name (#359) (d464eee)
- keep the context of function call while deconflict symbols (7401a05)
- make sure namespace name is valid identifier (#107) (d3c81aa)
- module execute order (#148) (7ef1c20)
- more meaningful chunk filename (#381) (47b4b6d), closes #49
- node-bench: apply
@rollup/plugin-commonjs
on rollup (#523) (181422a) - node/types: resolve.alias should be optional (ee10a4f)
- only import needed runtime symbols (#324) (51db31f), closes /github.com/rolldown-rs/rolldown/pull/319#discussion_r1398069930
- only pull out
__export()
when it's needed (670dbb6) - packages/core: allow empty
OutputOptions.format
(#224) (0a79036) - packages/core: make
outputOptions
optional (#223) (b2439b1) - playground panic (#263) (f97bea0)
- reexport star from local named export (#290) (77c77ec)
- release: make
prepare-publish-node
folder (14d2cd5) - release: remove build steps for android platform (161ef5f)
- rename in
SimpleAssignmentTarget
(1d24efc) - rewrite
AssignmentTargetProperty
(5605fc2) - rewrite object shorthand property reference (#384) (9f3332b)
- rewrite unresolved symbol reference callee to indirect call (#94) (6284028)
- rolldown example root is empty in debug mode (#582) (88f61e8)
- runtime module should always be the first to be executed (#116) (883168f)
- rust: fix bench for react by removing a lot of unsafe (#522) (71da395)
- rust: remove
RUNTIME_PATH
(#274) (c93a2fb) - rust: should not hard code output.dir (37ded97)
- shoud accept args for
just bump packages
(778ae11) - should correctly render
export default xxx
(#377) (7fa642f) - should rewrite
export default import(...)
correctly (#220) (cd8ad5e) - stable generated exports (#313) (526a04b)
- support browser filed false value (#395) (c3a82a4)
- top level await fix compile error (#226) (ac60fdf)
- treeshaking: spreading an expression is consider having side effect (#509) (d094d56)
- typo in README.md (#458) (24a4018)
- use the same
Resolver
everywhere (#253) (cbcee58) - using vec to keep input options order (#217) (4e4f20a)
- warpped require module (#79) (ee9a682)
- wrong rolldown test config priority (#642) (9490e31)
- add (#124) (ca07f3e)
- add
ChunkRenderReturn
struct to make code clear (87f02c2) - add
ExportsKind::None
(#315) (efdd252) - add
generateBundle
hook (#403) (21fe501) - add
OutputChunk
is_entry and facade_module_id (#230) (8fcfda3) - add
PluginContext#resolve
(#670) (43f5173) - add
referenced_symbols
toStmtInfo
(#75) (465e6e7) - add
Renamer
(#123) (7709cd4) - add
resolve
option (#392) (cd52449) - add
RuntimeNormalModuleTask
(#40) (2401386) - add banner output option (#634) (60331fb)
- add basic
renderChunk
hook (#401) (b7ea28b) - add buildStart buildEnd hook (#208) (e878c3b)
- add external option (#259) (a80db39)
- add footer output option (#693) (ca51a6b)
- add indentor for inserted code (#159) (eaebf11)
- add native plugin example (#262) (246693f)
- add node binding (#50) (9391f16)
- add output chunk isDynamicEntry (#373) (7f0e987)
- add OutputAsset (#231) (42420d7)
- add OutputChunk exports (#241) (46fe0bf)
- add OutputChunk map and sourcemapFileName (#626) (3135778)
- add OutputChunk modules (#240) (ccf06fe)
- add plugin adapter (#53) (6438255)
- add PluginDriver (#198) (526f896)
- add PluginDriver resolve_id (#204) (1f0b4f2)
- add resolve_id hook options, include kind and is_entry (#218) (763dedb)
- add rolldown_fs crate (#173) (583c858)
- add side effect detection for most of the statements (#555) (ec43f04)
- add sourcemap (#420) (d6a0efd)
- add sourcemap option (#424) (2f7c61b)
- add ViteScannerPlugin (#261) (3d8aff7)
- add writeBundle hook (#405) (683416a)
- allow custom require (#170) (d792da2)
- allow to get current
StmtInfo
in visiting ast (#370) (d962268) - allow to use node module specifier as the bundle input (#211) (51da74c)
- ast-based manipulation (#410) (6f4bfed)
- basic code splitting (#23) (74a7ccf)
- basic code splitting (#97) (395abb8)
- basic commonjs support (#38) (d40c919)
- basic error mechanism (#150) (0c9ab02)
- basic support for
generateBundle
andwriteBundle
(#708) (343cfb9) - basic support for importing external module (#168) (6d7e891)
- basic treeshaking (#372) (b240923), closes #16
- basic warning mechanism (#332) (84697ce), closes #331
- better display for errors and warnings (#679) (8864a39)
- call PluginDriver load to get source content (#199) (01b3563)
- call PluginDriver transform (#202) (42cdd61)
- ci: add
release-semver.yml
(bb27d40) - ci: add release workflow (#409) (85c1b9e)
- cli: user-friendly console output of chunk information (#727) (4b461cf)
- code splitting rely on tree shaking. Closes #390 (5e7491e)
- code spltting for dynamic import (#27) (6cd5c8e)
- collect errors from
NormalModuleTask
(#298) (4d7d595) - compat node module commonjs interop (#56) (58c2786)
- compute cross chunk links in parallel. Closes #354 (5844943)
- concat sourcemap (#423) (f10dac8)
- correct indent for generated code (#160) (21a70c2)
- correct indent for wrapped cjs module (#161) (58dff4e)
- crates/rolldown: expose
build
api (#266) (4430a89) - create cross-chunk links for runtime module and facade symbols (#114) (0c1e164)
- deconflict symbols in nested scopes in parallel (b3c5e01)
- deconflicting for symbols of nested scopes (#188) (42a2421)
- detect side effects in ConditionalExpression (#552) (4ec29f7)
- don't render empty module. Closes #440, #162 (b310a9a)
- emit warning for const assign code (#538) (f7ec1b5)
- empty module should have
ExportsKind::None
(#317) (b15ff14) - enable bare import by default (#284) (833dfc6)
- enable tree shaking in rust by default (#501) (ee08ea8)
- exclude modules in code splitting (#383) (ec60aca)
- expose
cwd
in input options (#692) (ba42b29) - extract html scripts at vite scanner plugin (#268) (1045b0b)
- finish bench use @rolldown/core (#234) (aa7982b)
- follow virtual module convention (#39) (a264b4a)
- generate cross chunk imports by usages (d9ccdb7)
- generate default export for cjs entry (#219) (699fc5d)
- generate module namespace binding on demand (#126) (e09002f)
- generate namespace decl (62768fe)
- generate sourcemap (#425) (da9db71)
- generate the namespace variable on demand (44d5aa8)
- hoist exported function declaration (#73) (f530305)
- impl
Extend
forBatchedErrors
(e22acce) - improve
SideEffectDetector
(#497) (04a1e3c) - improve side effect detection (#534) (f38e7a0)
- improve side-effect detection of
MemberExpression
(#374) (abbc8aa) - introduce
ChunkGraph
(#90) (0f7c82c) - introduce
rolldown_rstr
(a97e444), closes #427 - introduce
trait BuildErrorLike
(#327) (158b11d) - introduce helper method
visit_top_level_stmt
while visiting ast (#371) (7bc5f92) - make
BuildError
newtype (#326) (475907e) - make sure chunks are evaluated for their side effects (db6ac0a)
- migrate from yarn to pnpm (#567) (fbe32d2)
- node/plugin: improve compatibility with
rollup-plugin-esbuild
(#711) (73f4c5e) - node: add
scan
api (#340) (ba5257a) - node: export some types (#283) (aea91ab)
- only split runtime module into runtime chunk in rust test (#117) (7d56461)
- only start including modules with entry point in tree shaking (f5b920d)
- output code block should be readonly (#267) (629fd35)
- parsing with correct
SourceType
(#179) (aeaf38b) - plugin: basic support for
buildStart
,resolveId
,buildEnd
,load
,transform
,renderChunk
hook (#680) (3dd1d7c) - prepare supporting runtime (#37) (cd4899f)
- print fancy messages for errors (#329) (8751ee4)
- reexport commonjs (#87) (20271ad)
- refactor
Symbols
and remove a lot ofReferenceId
(#93) (5b980d5) - rely on the standalone copy of rollup types. Closes #439 (e231e14)
- remove
build
api (65b9bd6) - remove
VirtualStmtInfo
(#99) (344be1a) - remove special tree shaking logic for entry point (ba046e6)
- rename vitest.config.ts to avoid warning; add empty caseConfig … (#561) (da06dde)
- render chunk hook binding (#402) (25fca9d)
- replace
SymbolId
withSymbolRef
(#95) (9c90067) - resolve: more sensible default resolve options (#606) (7ae8435)
- restrict typings and refactor
RenderedModule
(#503) (1cc0fbe) - rolldown cli first implementation (#610) (c82e59d)
- runtime symbol deconflict (#54) (0fc1d3a), closes #59
- rust-plugin: pass
PluginContext
to JS (#628) (e4d33fd) - rust: add
OutputFormat::Cjs
(#358) (44c6331), closes #45 - rust: add
print
inOxcCompiler
(#281) (ad962af) - rust: don't generate sourcemap for virtual modules (#733) (b546e8f)
- rust: rendering runtime module in snapshot testing (#375) (3cb39a2)
- rust: return errors from
NormalModuleTask#resolve_dependencies
(#270) (fdbf290) - rust: should create bundler with
InputOptions
andOutputOptions
together (#596) (d2c63d7) - Setup nightly releases (#579) (14797aa)
- setup rolldown node test (#307) (7638193)
- should rewrite symbols in complex patterns correctly (#193) (e267018)
- store
source
inBuildError
(#328) (c34d3cd) - support enabling tracing (#291) (8310a17), closes /github.com/rolldown-rs/rolldown/blob/6601e8863d8934f18f7b1aa9b44867aba854b6f4/crates/rolldown_tracing/src/lib.rs#L1-L6
- support export star commonjs (#85) (07b8c03)
- support generating source map (#607) (f2dcda2)
- support mix cjs and esm (#76) (22794c3)
- support tree shaking (6e32999)
- suppport load hook return map (#421) (b42b32b)
- suppport transform hook return map (#422) (9206754)
- treat empty files as cjs in compat mode (456e0b3)
- treat required module with
ExportKind::None
as commonjs (#319) (0738ad8) - treeshaking in module level (#382) (6f8b03f)
- Update release flow to use changesets. (#577) (a4f50dd)
- update to
[email protected]
(5cf2c6b) - use
ariadne
for better error display (#163) (2cd7d49) - use oxc_resolver (#32) (79de1ad)
- vite-scanner: load script content from html (#280) (3bcaabc)
- wasm (#178) (d8d0b2a)
- wasm playground (#233) (724f4b2)
- wasm: enable multi entry (#250) (571ee4b)
- bump
string_wizard
for better performance (#292) (10a884a) - don't do remapping if there's only one sourcemap (#694) (aee9f39)
- passing data of
BindingOutputs
lazily (#696) (1c9f9bf) - reduce Module size (#6) (b1ceb65)
- reference needed symbols in parallel (#426) (26d3468)
- spawn runtime task ASAP (#276) (ba7f558)
- Revert "refactor: implement ConcatSource (#611)" (#612) (dc32a76), closes #611 #612
- Revert "perf: reduce Module size (#6)" (#7) (711ddb0), closes #6 #7
rolldown
node api should create graph (#302) (c7749ba)- A
Symbol
should only be declared in one chunk (#338) (340cd27) - add identifier for export default function without identifer (#81) (e84cde7)
- add stmt info declare symbol for resolution found symbol (#91) (50e191a)
- align with rollup, change
output.format: 'esm'
tooutput.format: 'es'
(#625) (70b6cfd) - allow cjs to be both entry and dependency (#336) (d53155b)
- async_scope_block_on (#210) (51f1be1)
- binding: only panic in the main thread (#507) (d844125)
- build script pkgName parsing error (#546) (0d6582f)
- bump to
[email protected]
(1af4b86) - ci release (#428) (483e533)
- ci: don't forget to checkout (fc231b8)
- ci: fix
release-canary.yml
(6fc0430) - ci: fix testing in
release.yml
(#651) (6e68b1a) - ci: need to checkout for using local actions (bb87f9a)
- clean up render exports from external module (#394) (e51a69a)
- cli: Make the CLI output color correctly (#645) (c19c8dc)
- clippy (#4) (f028cff)
- conflict between imported and local binding (#356) (7387e35), closes #355
- correct id in transform hook (#473) (7af0262)
- deconflict export named declartion (#386) (21aaa36)
- deconflict for duplicate canonical names (#365) (eebea46), closes #364
- defonflict export default function (#385) (518aa5f)
- determine call expression result is used to render require call (#144) (85224ea)
- don't rename symbols that show many times. Fixes #419 (f985755)
- duplicate dynamic entries (#380) (6067e74)
- dynamic import as entry (#366) (8d33829)
- dynamic import chunk is_entry should be false (#361) (6f2b75a)
- ensure valid output for import the same cjs twice (#323) (87b5000)
- expect msg (#456) (11e5598)
- export rolldown compat types (#337) (3efa4fd)
- fix typo in README.md (#443) (8ad8174)
- generate local symbol for esm import cjs instead of reference cjs namespace symbol (#141) (5c53415)
- hoist statements. Fixes #418 (276bbae)
- hoisted import declaration (#80) (569409d)
- hoisted top level scope declartion for wrapped esm (#387) (ec20c03)
- invalid output for conflict global and local name (#359) (d464eee)
- keep the context of function call while deconflict symbols (7401a05)
- make sure namespace name is valid identifier (#107) (d3c81aa)
- module execute order (#148) (7ef1c20)
- more meaningful chunk filename (#381) (47b4b6d), closes #49
- node-bench: apply
@rollup/plugin-commonjs
on rollup (#523) (181422a) - node/types: resolve.alias should be optional (ee10a4f)
- only import needed runtime symbols (#324) (51db31f), closes /github.com/rolldown-rs/rolldown/pull/319#discussion_r1398069930
- only pull out
__export()
when it's needed (670dbb6) - packages/core: allow empty
OutputOptions.format
(#224) (0a79036) - packages/core: make
outputOptions
optional (#223) (b2439b1) - playground panic (#263) (f97bea0)
- reexport star from local named export (#290) (77c77ec)
- release: make
prepare-publish-node
folder (14d2cd5) - release: remove build steps for android platform (161ef5f)
- rename in
SimpleAssignmentTarget
(1d24efc) - rewrite
AssignmentTargetProperty
(5605fc2) - rewrite object shorthand property reference (#384) (9f3332b)
- rewrite unresolved symbol reference callee to indirect call (#94) (6284028)
- rolldown example root is empty in debug mode (#582) (88f61e8)
- runtime module should always be the first to be executed (#116) (883168f)
- rust: fix bench for react by removing a lot of unsafe (#522) (71da395)
- rust: remove
RUNTIME_PATH
(#274) (c93a2fb) - rust: should not hard code output.dir (37ded97)
- shoud accept args for
just bump packages
(778ae11) - should correctly render
export default xxx
(#377) (7fa642f) - should rewrite
export default import(...)
correctly (#220) (cd8ad5e) - stable generated exports (#313) (526a04b)
- support browser filed false value (#395) (c3a82a4)
- top level await fix compile error (#226) (ac60fdf)
- treeshaking: spreading an expression is consider having side effect (#509) (d094d56)
- typo in README.md (#458) (24a4018)
- use the same
Resolver
everywhere (#253) (cbcee58) - using vec to keep input options order (#217) (4e4f20a)
- warpped require module (#79) (ee9a682)
- wrong rolldown test config priority (#642) (9490e31)
- add (#124) (ca07f3e)
- add
ChunkRenderReturn
struct to make code clear (87f02c2) - add
ExportsKind::None
(#315) (efdd252) - add
generateBundle
hook (#403) (21fe501) - add
OutputChunk
is_entry and facade_module_id (#230) (8fcfda3) - add
referenced_symbols
toStmtInfo
(#75) (465e6e7) - add
Renamer
(#123) (7709cd4) - add
resolve
option (#392) (cd52449) - add
RuntimeNormalModuleTask
(#40) (2401386) - add basic
renderChunk
hook (#401) (b7ea28b) - add buildStart buildEnd hook (#208) (e878c3b)
- add external option (#259) (a80db39)
- add indentor for inserted code (#159) (eaebf11)
- add native plugin example (#262) (246693f)
- add node binding (#50) (9391f16)
- add output chunk isDynamicEntry (#373) (7f0e987)
- add OutputAsset (#231) (42420d7)
- add OutputChunk exports (#241) (46fe0bf)
- add OutputChunk map and sourcemapFileName (#626) (3135778)
- add OutputChunk modules (#240) (ccf06fe)
- add plugin adapter (#53) (6438255)
- add PluginDriver (#198) (526f896)
- add PluginDriver resolve_id (#204) (1f0b4f2)
- add resolve_id hook options, include kind and is_entry (#218) (763dedb)
- add rolldown_fs crate (#173) (583c858)
- add side effect detection for most of the statements (#555) (ec43f04)
- add sourcemap (#420) (d6a0efd)
- add sourcemap option (#424) (2f7c61b)
- add ViteScannerPlugin (#261) (3d8aff7)
- add writeBundle hook (#405) (683416a)
- allow custom require (#170) (d792da2)
- allow to get current
StmtInfo
in visiting ast (#370) (d962268) - allow to use node module specifier as the bundle input (#211) (51da74c)
- ast-based manipulation (#410) (6f4bfed)
- basic code splitting (#23) (74a7ccf)
- basic code splitting (#97) (395abb8)
- basic commonjs support (#38) (d40c919)
- basic error mechanism (#150) (0c9ab02)
- basic support for importing external module (#168) (6d7e891)
- basic treeshaking (#372) (b240923), closes #16
- basic warning mechanism (#332) (84697ce), closes #331
- call PluginDriver load to get source content (#199) (01b3563)
- call PluginDriver transform (#202) (42cdd61)
- ci: add
release-semver.yml
(bb27d40) - ci: add release workflow (#409) (85c1b9e)
- code splitting rely on tree shaking. Closes #390 (5e7491e)
- code spltting for dynamic import (#27) (6cd5c8e)
- collect errors from
NormalModuleTask
(#298) (4d7d595) - compat node module commonjs interop (#56) (58c2786)
- compute cross chunk links in parallel. Closes #354 (5844943)
- concat sourcemap (#423) (f10dac8)
- correct indent for generated code (#160) (21a70c2)
- correct indent for wrapped cjs module (#161) (58dff4e)
- crates/rolldown: expose
build
api (#266) (4430a89) - create cross-chunk links for runtime module and facade symbols (#114) (0c1e164)
- deconflict symbols in nested scopes in parallel (b3c5e01)
- deconflicting for symbols of nested scopes (#188) (42a2421)
- detect side effects in ConditionalExpression (#552) (4ec29f7)
- don't render empty module. Closes #440, #162 (b310a9a)
- emit warning for const assign code (#538) (f7ec1b5)
- empty module should have
ExportsKind::None
(#317) (b15ff14) - enable bare import by default (#284) (833dfc6)
- enable tree shaking in rust by default (#501) (ee08ea8)
- exclude modules in code splitting (#383) (ec60aca)
- extract html scripts at vite scanner plugin (#268) (1045b0b)
- finish bench use @rolldown/core (#234) (aa7982b)
- follow virtual module convention (#39) (a264b4a)
- generate cross chunk imports by usages (d9ccdb7)
- generate default export for cjs entry (#219) (699fc5d)
- generate module namespace binding on demand (#126) (e09002f)
- generate namespace decl (62768fe)
- generate sourcemap (#425) (da9db71)
- generate the namespace variable on demand (44d5aa8)
- hoist exported function declaration (#73) (f530305)
- impl
Extend
forBatchedErrors
(e22acce) - improve
SideEffectDetector
(#497) (04a1e3c) - improve side effect detection (#534) (f38e7a0)
- improve side-effect detection of
MemberExpression
(#374) (abbc8aa) - introduce
ChunkGraph
(#90) (0f7c82c) - introduce
rolldown_rstr
(a97e444), closes #427 - introduce
trait BuildErrorLike
(#327) (158b11d) - introduce helper method
visit_top_level_stmt
while visiting ast (#371) (7bc5f92) - make
BuildError
newtype (#326) (475907e) - make sure chunks are evaluated for their side effects (db6ac0a)
- migrate from yarn to pnpm (#567) (fbe32d2)
- node: add
scan
api (#340) (ba5257a) - node: export some types (#283) (aea91ab)
- only split runtime module into runtime chunk in rust test (#117) (7d56461)
- only start including modules with entry point in tree shaking (f5b920d)
- output code block should be readonly (#267) (629fd35)
- parsing with correct
SourceType
(#179) (aeaf38b) - prepare supporting runtime (#37) (cd4899f)
- print fancy messages for errors (#329) (8751ee4)
- reexport commonjs (#87) (20271ad)
- refactor
Symbols
and remove a lot ofReferenceId
(#93) (5b980d5) - rely on the standalone copy of rollup types. Closes #439 (e231e14)
- remove
build
api (65b9bd6) - remove
VirtualStmtInfo
(#99) (344be1a) - remove special tree shaking logic for entry point (ba046e6)
- rename vitest.config.ts to avoid warning; add empty caseConfig … (#561) (da06dde)
- render chunk hook binding (#402) (25fca9d)
- replace
SymbolId
withSymbolRef
(#95) (9c90067) - resolve: more sensible default resolve options (#606) (7ae8435)
- restrict typings and refactor
RenderedModule
(#503) (1cc0fbe) - rolldown cli first implementation (#610) (c82e59d)
- runtime symbol deconflict (#54) (0fc1d3a), closes #59
- rust-plugin: pass
PluginContext
to JS (#628) (e4d33fd) - rust: add
OutputFormat::Cjs
(#358) (44c6331), closes #45 - rust: add
print
inOxcCompiler
(#281) (ad962af) - rust: rendering runtime module in snapshot testing (#375) (3cb39a2)
- rust: return errors from
NormalModuleTask#resolve_dependencies
(#270) (fdbf290) - rust: should create bundler with
InputOptions
andOutputOptions
together (#596) (d2c63d7) - Setup nightly releases (#579) (14797aa)
- setup rolldown node test (#307) (7638193)
- should rewrite symbols in complex patterns correctly (#193) (e267018)
- store
source
inBuildError
(#328) (c34d3cd) - support enabling tracing (#291) (8310a17), closes /github.com/rolldown-rs/rolldown/blob/6601e8863d8934f18f7b1aa9b44867aba854b6f4/crates/rolldown_tracing/src/lib.rs#L1-L6
- support export star commonjs (#85) (07b8c03)
- support generating source map (#607) (f2dcda2)
- support mix cjs and esm (#76) (22794c3)
- support tree shaking (6e32999)
- suppport load hook return map (#421) (b42b32b)
- suppport transform hook return map (#422) (9206754)
- treat empty files as cjs in compat mode (456e0b3)
- treat required module with
ExportKind::None
as commonjs (#319) (0738ad8) - treeshaking in module level (#382) (6f8b03f)
- Update release flow to use changesets. (#577) (a4f50dd)
- update to
[email protected]
(5cf2c6b) - use
ariadne
for better error display (#163) (2cd7d49) - use oxc_resolver (#32) (79de1ad)
- vite-scanner: load script content from html (#280) (3bcaabc)
- wasm (#178) (d8d0b2a)
- wasm playground (#233) (724f4b2)
- wasm: enable multi entry (#250) (571ee4b)