CHANGELOG-2024.md
dir should be ignored if file is set (#3229) (6bcbc40)--file or -o, shouldn't print bundle output to stdout (#3228) (aafbb17)name property required for plugins (#3192) (f85bcfa), closes /github.com/rollup/rollup/blob/7a8ac460c62b0406a749e367dbd0b74973282449/src/rollup/types.d.ts#L518minify: true (#3182) (ef5d11b), closes #3173NODE_ENV based on minify option for browser platform (#3230) (e313bf9)closeBundle on cli and one-shot build api (#3026) (2969a22)esm (#3082) (d1cf2f8)keepNames node binding (#3027) (176666f), closes #2985names / originalFileNames support (#3024) (daa17ff), closes #2496build API write to disk by default (#3019) (a83297c)require by OutputOptiond#polyfillRequire: 'false' (#3091) (b12b20a)checks to inputOptions (#3052) (711c16c), closes /github.com/rolldown/rolldown/blob/225f6a41679fff165eff297ba21578a72b4d88eb/packages/rolldown/tests/fixtures/onwarn/_config.ts#L8SourceMap::toUrl/SourceMap::toString (#3064) (1f21417)stringify: 'auto' (#3103) (0ad8217)resolve.dedupe (#3061) (2ec340e)import.meta.dirname|filename in cjs (#3053) (22747a3)serde feature (#3140) (1265c2c)AppendOnlyVec from reference_needed_symbols (#3164) (ff1ed90)forbid-const-assign should considering all write scenario (#2715) (015d4f1)new URL(..., import.met.url) with webpack (#2738) (2b4f224)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-L188import(...) should have the same result as esm output (#2999) (d42ea8a)__toESM reference for external import wrapper (#2911) (aaa96db)export keyword in cjs output (#2807) (80daf63)__require (#2675) (0f44c14)EcmaView of css module (#2631) (4c1a715)output.format did not support topLevelAwait (#2629) (db018fa), closes /github.com/evanw/esbuild/commit/5fe21253ee75fb4c5ea395a0877b2a5ab51c3575#diff-f312cd3ffe8d88cf424d3f0bd04b41e5b0ad36e549874b5688028bf9091a61f5L2238\0 in JsChangedOutputs.chunks (#3006) (3f476c3)chunk.modules object key (#2991) (0628d1b)new URL(...) (#2747) (e2c4e6a), closes #2741 #2744inlineDynamicImports on js side (#2834) (1ae6760).cts and .mts imports cjs (#2770) (a44c472)total order (#2621) (8daf1a0)chunk.modules after generateBundle mutation (#2993) (4d0092f)inlineDynamicImports is enabled (#2865) (9f9d29a), closes #2833experimental.viteMode (#2849) (bf06e41)new URL(..., import.meta.url) support (#2710) (7c6cbb2)defineConfig overload (#2689) (51ba546)treeshake.moduleSideEffects (#2695) (66e8088)advancedChunksenabled (#2620) (78945df)-o for file option. (#2632) (cbfe498)new URL to asset behavior by default (#2953) (e126911)import() destructing binding pattern (#2722) (ad0940a)ImportExpression (#2723) (d5e797b)inlineDynamicImports automatically if format is iffe or umd (#2808) (172a5a1), closes #2792cssEntryFileNames and cssChunkFileNames options in js side (#2623) (6f1cfaf), closes #2618require if format: 'esm' and platform: 'node' (#2920) (f1bd92f)NormalizedOutputOptions (#2907) (62a9ed2), closes #2867 #2906NormalizedInputOptions#input (#2894) (5150802)NormalizedOutputOptions#format (#2900) (b5df408)OutputOptions#comments option (#2644) (3912c3a)build API (#3011) (bf8c326)write for build API (#3014) (745d904)build API (#3015) (b1c9cf2)new URL('./foo', import.meta.url) import (#2753) (1839fd3), closes #2745createIdResolver (#2869) (d6cedcb)import.meta.url when platform: 'node' and format: 'cjs' (#2694) (3a1912b)replace method (#2733) (915d2fa)configVariants to allow to emit multiple output (#2785) (73fce89)comments option (#2614) (a35faba)NormalizedOutputOptions from rust to js (#2899) (ac28e50)NormalizedOutputOptions in generateBundle hook (#2902) (87f7277)NormalizedOutputOptions in renderChunk hook (#2909) (b6dc60a), closes #2902 #2906NormalizedOutputOptions in writeBundle hook (#2914) (3ec063f), closes #2906Comments::PreserveLegalComments (#2615) (19de25e)node if format is cjs (#2837) (d7adf58)output.hashCharacters (#2647) (a50a3b2), closes #2646RenderedModule.renderedLength (#2697) (146ecd8), closes #2686output.globals (#2818) (7383e19), closes /github.com/rolldown/rolldown/blob/ab438c355063765640db18cb03b8d08fa2eee39d/packages/rolldown/src/utils/normalize-output-options.ts#L46-L47BuildResult for validate_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-L6satisfies keyword for InputOptions and OutputOptions (#2611) (2863d64), closes #2568ReplaceGlobalDefinesConfig (#2884) (5e804db), closes /github.com/rolldown/rolldown/blob/52e0d11c4e3b655f4d6e76226b2e70086d41de44/crates/rolldown/src/module_loader/module_loader.rs#L89-L96is_top_level (#2803) (2be7882)join method (#2766) (6264234)DashMaps (#2971) (33beb44)HashMaps (#2988) (ff1fc6c)__commonJS second param on demand (#2314) (5d4fe3e), closes /github.com/evanw/esbuild/blob/9c13ae1f06dfa909eb4a53882e3b7e4216a503fe/internal/linker/linker.go#L4811-L4818RESOLVED_MODULE_PRELOAD_POLYFILL_ID (#2261) (df113d5)advancedChunks.groups[*].test should be a RegExp (#2393) (be3527e), closes #2391eslint/no-unsafe-optional-chaining violation (#2432) (6c83c39)PluginContext#resolve should care about InputOptions#external (#2307) (50fa284)default as alias (#2439) (a2b10d2)cwd rather importer (#2262) (ff62f77)-s flag not working in cli & Update cli help info (#2517) (8ad0293)[hash:6] in entryFileNames does not get replaced with hash (#2238) (ae7ea95), closes #2206./**.js syntax (#2313) (17fefa4), closes #2298MISSING_NAME_OPTION_FOR_IIFE_EXPORT is output even if nothing is exported from the entrypoint (#2256) (c0e7b5f), closes #2255object_guards option (#2322) (3899128)object_guards enabled and simple values (#2318) (940d676)expand_typeof_replacements (#2196) (d6233d8)__toCommonJS if it is plain require (#2547) (26282e0)void 0 (#2347) (a183537)-s for sourcemap. (#2236) (e52ef2f), closes #2225cjs (#2525) (829e36d)repr_name with esbuild (#2285) (930d1bc)commonJSMin and esmMin (#2346) (ceacea3)CssAstScanner (#2366) (f1e4907)at-import statements in output (#2423) (5b6497d)moduleType type (#2217) (2685a07)resolve#extensionAlias option (#2337) (15c41fa), closes #2327disableLiveBindings option (#2282) (c56991c)output.file option (#2567) (378692a)targets key for options. (#2242) (7dcfefc)checks options to control if to emit some warnings (#2192) (b110ec3)CssView (#2248) (7952415)ModuleType::Css (#2247) (7531196)rolldown_std_utils crate to store utils/extensions for the rust std library (#2372) (2481251)string_wizard to the repo (#2572) (2ace0eb)file option (#2565) (cda7c35)SymbolRefDbForModule while scanning oxc AST (#2380) (d8b07cc)css module type in dataurl. (#2272) (00e6edd)backtrack_limit (#2202) (3874566)expand_typeof_replacements avoid temporary vecs (#2321) (84cb2a2)expand_typeof_replacements use regex crate (#2320) (22b43cd)SemanticBuilder::with_stats when running semantic analysis on same AST twice (#2230) (7220e80), closes #2227minSize, minShareCount (#2178) (78c7750)minSize, minShareCount (#2177) (3c95d30)min_share_count option (#2176) (689cbc2)min_size option (#2175) (1e9c2d9)process.env.NODE_ENV inside paren expr (#2153) (fddb2f5)examples/rollup-plugin-esbuild build successfully (#2164) (49f2d83), closes #2163console.log (#2145) (d24c337)+1 -1 as number literal (#2162) (40ae24d)OutputOptions#advancedChunks (#2167) (851475d)test using regex (#2152) (b7b2ac5)rolldown -c should not print help messages (#1993) (a82ccc6)canonical_ref has ns_alias (#2095) (ab6b043), closes #2079transform behavior after composing (#1701) (3a1f216)absolute_preliminary_filename not taking options.cwd into account (#1935) (6b6d713)cjs-module-lexer for export * from 'external' (#1854) (de1f5f5)banner ahead of the file in cjs format. (#1707) (2640072), closes #1706 #1705 /github.com/rolldown/rolldown/pull/1705#discussion_r1689236056order meta is considered as not composable (#1943) (ebfebf3)PluginContext#resolveId of all hooks (#2050) (f19b6c7)package.json (#2048) (5aa76dc)output.globals to Rust side. (#1912) (bd84267)export * from 'external' for esm format (#1974) (2eb06ef)reserved-key in json module type. (#1746) (7243165), closes oxc-project/oxc#4484exports key in CJS and IIFE. (#1837) (2953b90), closes #1836 #1623 /github.com/rolldown/rolldown/pull/1694#issuecomment-2245219042 #1623alias can be a member expression (#1934) (c5aafad), closes /github.com/rollup/plugins/blob/8550c4b1925b246adbd3af48ed0e5f74f822c951/packages/inject/src/index.js#L125generate_bundle by removing unsafe code (#1905) (9802478)Chunk#name for common chunks (#2123) (a1fa701)export * from ... in entry chunks rather than entry modules (#1783) (954dd2a)star as member (#1730) (250c11a)commonjs var in esm (#2101) (4c9feeb), closes /esbuild.github.io/try/#YgAwLjIzLjEALS1idW5kbGUgLS1taW5pZnk9ZmFsc2UgLS1mb3JtYXQ9ZXNtAGUAZW50cnkuanMALyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBleHBvcnRzYC4gKi8KdmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzOwoKLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqLwp2YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7CgovKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqLwp2YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0czsKCi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqLwp2YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0require should consider as having side effects (#1949) (28e53d6)transform-plugin-context.ts (#1991) (b2590fd)config.plugins (#1938) (b4e33d5)moduleType in transform Hook (#1916) (cef3e57)css_entry_filenames and css_chunk_filenames (#1678) (bc1c22e)enableComposingJsPlugins option (#1693) (7aa56fe)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-L62resolveId hook (#2021) (55c20b0)PluginContext#addWatchFile for shim (#1972) (559b424)define functionality (#1891) (43f6f22), closes #186InputOptions#inject (#1946) (9071d6a)custom in PluginContext#resolve (#1874) (6a61bad), closes /github.com/vitejs/vite/blob/main/packages/vite/src/node/plugins/resolve.ts#L181VERSION (#2049) (806718d), closes /github.com/rollup/rollup/blob/3eb88175f687193e8a73e681dc1fbd6bd48201a2/src/node-entry.ts#L1custom in PluginContextResolveOptions (#1876) (0c6cae4), closes #1874inject imports (#1933) (a2bb2ca)advanced_chunks option (#2115) (1a81db2)define functionality (#1882) (8639e70)intro and outro in plugins. (#1763) (b15d8c5), closes #1755 #1713output.esModule option (#1812) (4999aed)output.exports for IIFE format align with rollup. (#1691) (5418e1f), closes #1680output.footer in plugins. (#1713) (536d5f7), closes #1702 /github.com/rolldown/rolldown/pull/1702#issuecomment-2248059655output.globals for iife format (#1694) (8aad7d0), closes #1623 #1569output.inlineDynamicImports option. (#2081) (63b932e), closes #1841output.intro and output.outro. (#1712) (964c5ee), closes #819OutputOptions#externalLiveBindings (#1979) (cc41c94)skipSelf option in PluginContext.resolve (#1703) (a18a8da), closes #1554 #819 /github.com/rollup/rollup/blob/28546b5821efcb72c2eb05f422d986524647a0e3/src/utils/PluginContext.ts#L78output.extend for IIFE format. (#1861) (bfae17d)__reExport if needed (#1987) (4cac925)mime_guess in favor of a lighter guessing function. (#1698) (cbcb511)itoa for integer to string conversion (#2107) (c916947)member_expr related to symbols of import statements (#1815) (f4d288c)ConcatSourceMapBuilder unconditionally (#2078) (e7c2bff)simdutf8 to validate UTF-8 when reading files (#2040) (94cb434)ModuleType (#1632) (9f244db)output.exports option. (#1680) (72abdfc), closes #1628OutputOptions#minify to minify js output (#1617) (bcc4edc)treeshake.moduleSideEffects treeshake typing (#1559) (5ce9f67)dataurl in json config syntax. (#1536) (ddee952)Semantic up-to-date after transforming (#1531) (a660554)dataurl module type. (#1367) (b27b0b0), closes #1299 #1406f64.to_string() (#1481) (f90969a)HASH_PLACEHOLDER_RE with simple string parsing (#1496) (aa347f5)sort_unstable variants (#1469) (151d8c7)legitimize_identifier_name (#1477) (18bc668)legitimize_identifier_name (#1478) (3d816d5)forbid_const_assign_when_lowering_using test (#1413) (0d15f0e)export * from 'external' correctly (#1363) (9dbb803)export * from 'external' (#1450) (c62a512)NormalModule#module_type (#1448) (449dcce)PluginContext#parse as unsupported (#1289) (aef45e0)empty (#1369) (cb3bf33)moduleTypes option (#1451) (39f16e2)AllocatorExt trait (#1350) (fa4262c)outputOptions hook (#1339) (176ca26)IsolatingModuleFinalizer for app output (#1317) (92bfe2d)__esModule flag (#1313) (d892948)"use strict" if possible (#1284) (bf3f86e)#region (#1330) (ace105c)options hook (#1275) (fc94245)sideEffect: 'no-treeshake' (#1293) (283a58c)use strict while emitting esm output (#1283) (79fbbd4)BundlerOptions#loaders (#1280) (804df07)browser field while targeting browser platform (#1075) (936a6ab)node platform (#1190) (8d088d8)Output and OutputChunk (#1082) (430d642)PluginContext#resolve (#1102) (5bcf3ed)app (#1242) (33f0a49)NormalModule#stable_resource_id (#1112) (54b76bf)JsCallback (#970) (c749dce)Loader concept (#1193) (b530331)package.json in NormalModule (#1170) (e9938d9)[hash] in entry_file_names and chunk_file_names (#929) (0546001)resolveDynamicImport hook (#981) (37ef30d).json files (#1194) (b997019)BindingResolveOptions#alias from js to rust with maintaining order (#798) (2f3d865)InputOptions#platform (#751) (97ea4b6)oxc-resolver via InputOptions#resolve#tsconfigFilename (#767) (c304a0d)renderStart hook (#833) (c1194e6)deserialize on BundlerOptions in testing (#880) (06df20d)entryFileNames and chunkFileNames (#777) (50da487)InputOptions#shimMissingExports (#772) (2c84963)renderError hook (#900) (b9c9181)InputOptions#logLevel (#859) (f90bbb0)AddonFunction (#822) (f814c3e)rolldown node api should create graph (#302) (c7749ba)Symbol should only be declared in one chunk (#338) (340cd27)output.format: 'esm' to output.format: 'es' (#625) (70b6cfd)[email protected] (1af4b86)release-canary.yml (6fc0430)release.yml (#651) (6e68b1a)@rollup/plugin-commonjs on rollup (#523) (181422a)__export() when it's needed (670dbb6)OutputOptions.format (#224) (0a79036)outputOptions optional (#223) (b2439b1)prepare-publish-node folder (14d2cd5)SimpleAssignmentTarget (1d24efc)AssignmentTargetProperty (5605fc2)RUNTIME_PATH (#274) (c93a2fb)just bump packages (778ae11)export default xxx (#377) (7fa642f)export default import(...) correctly (#220) (cd8ad5e)Resolver everywhere (#253) (cbcee58)ChunkRenderReturn struct to make code clear (87f02c2)ExportsKind::None (#315) (efdd252)generateBundle hook (#403) (21fe501)OutputChunk is_entry and facade_module_id (#230) (8fcfda3)PluginContext#resolve (#670) (43f5173)referenced_symbols to StmtInfo (#75) (465e6e7)Renamer (#123) (7709cd4)resolve option (#392) (cd52449)RuntimeNormalModuleTask (#40) (2401386)renderChunk hook (#401) (b7ea28b)StmtInfo in visiting ast (#370) (d962268)generateBundle and writeBundle (#708) (343cfb9)release-semver.yml (bb27d40)NormalModuleTask (#298) (4d7d595)build api (#266) (4430a89)ExportsKind::None (#317) (b15ff14)cwd in input options (#692) (ba42b29)Extend for BatchedErrors (e22acce)SideEffectDetector (#497) (04a1e3c)MemberExpression (#374) (abbc8aa)ChunkGraph (#90) (0f7c82c)rolldown_rstr (a97e444), closes #427trait BuildErrorLike (#327) (158b11d)visit_top_level_stmt while visiting ast (#371) (7bc5f92)BuildError newtype (#326) (475907e)rollup-plugin-esbuild (#711) (73f4c5e)scan api (#340) (ba5257a)SourceType (#179) (aeaf38b)buildStart,resolveId,buildEnd,load,transform,renderChunk hook (#680) (3dd1d7c)Symbols and remove a lot of ReferenceId (#93) (5b980d5)build api (65b9bd6)VirtualStmtInfo (#99) (344be1a)SymbolId with SymbolRef (#95) (9c90067)RenderedModule (#503) (1cc0fbe)PluginContext to JS (#628) (e4d33fd)OutputFormat::Cjs (#358) (44c6331), closes #45print in OxcCompiler (#281) (ad962af)NormalModuleTask#resolve_dependencies (#270) (fdbf290)InputOptions and OutputOptions together (#596) (d2c63d7)source in BuildError (#328) (c34d3cd)ExportKind::None as commonjs (#319) (0738ad8)[email protected] (5cf2c6b)ariadne for better error display (#163) (2cd7d49)string_wizard for better performance (#292) (10a884a)BindingOutputs lazily (#696) (1c9f9bf)rolldown node api should create graph (#302) (c7749ba)Symbol should only be declared in one chunk (#338) (340cd27)output.format: 'esm' to output.format: 'es' (#625) (70b6cfd)[email protected] (1af4b86)release-canary.yml (6fc0430)release.yml (#651) (6e68b1a)@rollup/plugin-commonjs on rollup (#523) (181422a)__export() when it's needed (670dbb6)OutputOptions.format (#224) (0a79036)outputOptions optional (#223) (b2439b1)prepare-publish-node folder (14d2cd5)SimpleAssignmentTarget (1d24efc)AssignmentTargetProperty (5605fc2)RUNTIME_PATH (#274) (c93a2fb)just bump packages (778ae11)export default xxx (#377) (7fa642f)export default import(...) correctly (#220) (cd8ad5e)Resolver everywhere (#253) (cbcee58)ChunkRenderReturn struct to make code clear (87f02c2)ExportsKind::None (#315) (efdd252)generateBundle hook (#403) (21fe501)OutputChunk is_entry and facade_module_id (#230) (8fcfda3)referenced_symbols to StmtInfo (#75) (465e6e7)Renamer (#123) (7709cd4)resolve option (#392) (cd52449)RuntimeNormalModuleTask (#40) (2401386)renderChunk hook (#401) (b7ea28b)StmtInfo in visiting ast (#370) (d962268)release-semver.yml (bb27d40)NormalModuleTask (#298) (4d7d595)build api (#266) (4430a89)ExportsKind::None (#317) (b15ff14)Extend for BatchedErrors (e22acce)SideEffectDetector (#497) (04a1e3c)MemberExpression (#374) (abbc8aa)ChunkGraph (#90) (0f7c82c)rolldown_rstr (a97e444), closes #427trait BuildErrorLike (#327) (158b11d)visit_top_level_stmt while visiting ast (#371) (7bc5f92)BuildError newtype (#326) (475907e)scan api (#340) (ba5257a)SourceType (#179) (aeaf38b)Symbols and remove a lot of ReferenceId (#93) (5b980d5)build api (65b9bd6)VirtualStmtInfo (#99) (344be1a)SymbolId with SymbolRef (#95) (9c90067)RenderedModule (#503) (1cc0fbe)PluginContext to JS (#628) (e4d33fd)OutputFormat::Cjs (#358) (44c6331), closes #45print in OxcCompiler (#281) (ad962af)NormalModuleTask#resolve_dependencies (#270) (fdbf290)InputOptions and OutputOptions together (#596) (d2c63d7)source in BuildError (#328) (c34d3cd)ExportKind::None as commonjs (#319) (0738ad8)[email protected] (5cf2c6b)ariadne for better error display (#163) (2cd7d49)string_wizard for better performance (#292) (10a884a)