v2.2.0-rc.0
- feat: integrate module code generation to the new cache by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/15194
- feat(cache): add fine-grained new cache options by @hardfist in https://github.com/web-infra-dev/rspack/pull/15261
- perf(paths): intern ArcPath as a single-allocation prehashed path by @stormslowly in https://github.com/web-infra-dev/rspack/pull/15205
- perf: use rayon parallel scheduling for new cache db by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/15251
- fix(css): CSS module dashed identifier and composes edge cases by @intellild in https://github.com/web-infra-dev/rspack/pull/15223
- fix: make Module.blocks and Module.dependencies fail gracefully while the module graph is under construction by @upupming in https://github.com/web-infra-dev/rspack/pull/15177
- fix: preserve reexport call context in concatenation by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15247
- fix(cache): validate new cache version by @hardfist in https://github.com/web-infra-dev/rspack/pull/15237
- fix(cache): use storage location for new cache by @hardfist in https://github.com/web-infra-dev/rspack/pull/15250
- fix(ids): make compare_modules_by_pre_order_index_or_identifier a total order by @noyobo in https://github.com/web-infra-dev/rspack/pull/15260
- fix: await async modules in ProvidePlugin by @HashemKhalifa in https://github.com/web-infra-dev/rspack/pull/15143
- fix: refine binding code generation result error handling by @intellild in https://github.com/web-infra-dev/rspack/pull/15253
- fix(resolver): restore tsconfig files as file dependencies by @stormslowly in https://github.com/web-infra-dev/rspack/pull/15264
- docs: improve dynamic import magic comments by @SyMind in https://github.com/web-infra-dev/rspack/pull/15233
- docs: improve devtool configuration guide by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15239
- docs: expand devtool reference by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15241
- docs: improve target configuration guide by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15248
- chore(vscode): use Rstack extension as default formatter by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15245
- chore: update Rstack to v0.6.2 by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15252
- ci: make sccache actually cache cargo check and clippy by @stormslowly in https://github.com/web-infra-dev/rspack/pull/15235
- chore: align agent guidance by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15268
- revert: remove faster module concatenation by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15262
- @noyobo made their first contribution in https://github.com/web-infra-dev/rspack/pull/15260
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.2.0-beta.1...v2.2.0-rc.0
v2.2.0-beta.1
Rspack now emits Client Component exports as registered client references directly. CSS imported by a Client Component is no longer injected by wrapping its exports with generated <link> elements; the stylesheet is preinitialized from the React Flight payload instead. This preserves client-reference identity, including default, named, CommonJS, and non-component exports. Explicit link generation remains available through import.meta.rspackRsc.loadCss().
This is a breaking change for RSC framework integrations. Upgrade react-server-dom-rspack to 0.1.0 and update any code that relies on the previous export-wrapper behavior.
swc_core is upgraded from 76 to 77, which changes the serialized AST encoding across the SWC Wasm plugin boundary. Plugins compiled against an earlier SWC schema no longer load and the build fails with The version of the SWC Wasm plugin you're using might not be compatible with 'builtin:swc-loader'. Rebuild your plugin, or upgrade to an SWC 77 compatible release .
Use plugins.swc.rs to find the plugin version matching your Rspack release, and see SWC plugin version mismatch for details. SWC 77 also introduces dedicated FunctionBody and ArrowFunctionBody::FunctionBody AST nodes, a breaking change for Rust-side consumers of the SWC AST.
CSS identifier escaping and unescaping now follow the CSS Syntax standard, so Unicode identifiers are emitted directly instead of carrying unnecessary backslashes.
.😍 {
color: red;
}
now generates .style_modules_css-😍 rather than .style_modules_css-\😍.
CSS Modules coverage also expands to more webpack cases — local/global modes, generator options, ICSS @value, custom identifiers, and warning order — and dependency collection moves into css-module-lexer, so stylesheets are no longer rescanned with regular expressions after parsing.
- refactor!(rsc): emit client references directly and preinit CSS by @SyMind in https://github.com/web-infra-dev/rspack/pull/14974
- chore: bump SWC dependencies by @hardfist in https://github.com/web-infra-dev/rspack/pull/15217
- feat: implement generation-based memory cache eviction by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/15181
- feat: add idle cache compaction with interruption handling by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/15182
- feat(css): improve unicode handling and support more css modules cases, boost performance by @intellild in https://github.com/web-infra-dev/rspack/pull/14809
- perf(binding): cache converted module original source by @SyMind in https://github.com/web-infra-dev/rspack/pull/15174
- perf: batch splitChunks JavaScript callbacks by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/15147
- perf(binding): exclude test loaders from release builds by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15209
- perf(binding): exclude perfetto from release WASI builds by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15221
- perf(binding): align release WASI optimizations by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15227
- perf(binding): optimize React Compiler crates for size by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15230
- perf: avoid parsing concatenated module codegen by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14852
- perf: preallocate identifier path buffers by @intellild in https://github.com/web-infra-dev/rspack/pull/15220
- fix: pass HMR error to Preact refresh recovery handler by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15179
- fix(cache): limit shutdown compaction to a single pass by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/15188
- fix(types): add missing stats fields by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15206
- fix(css-extract): strip BOM from module content before concatenation by @doxxx93 in https://github.com/web-infra-dev/rspack/pull/15169
- fix(core): decouple incremental artifacts from cache! by @hardfist in https://github.com/web-infra-dev/rspack/pull/15229
- fix(asset): preserve ESM imports in module output for "preserve" importMode by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/15165
- refactor(css): move css-module-lexer into workspace by @intellild in https://github.com/web-infra-dev/rspack/pull/15218
- refactor(core): clarify persistent cache item naming by @hardfist in https://github.com/web-infra-dev/rspack/pull/15231
- docs: align stats JSON types with implementation by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15207
- chore: migrate rspack_resolver crate into the workspace by @stormslowly in https://github.com/web-infra-dev/rspack/pull/15161
- chore: release version 2.1.10 by @intellild in https://github.com/web-infra-dev/rspack/pull/15172
- chore(deps): upgrade Rstack CLI to v0.6.0 by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15176
- chore(ci): use unified Rstack checks by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15184
- chore(resolver): tidy crate root layout by @stormslowly in https://github.com/web-infra-dev/rspack/pull/15180
- chore: format TOML with Rstack CLI by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15185
- chore(deps): upgrade pnp to 0.12.11 by @stormslowly in https://github.com/web-infra-dev/rspack/pull/15186
- chore(ci): gate binary size on main pushes by @stormslowly in https://github.com/web-infra-dev/rspack/pull/15178
- chore: upgrade Wasmtime and wasmparser dependencies by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/15187
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15196
- chore(deps): update dependency toml to v5 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15204
- chore(deps): update rust crate regex to 1.13.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15200
- chore(deps): update dependency @shikijs/transformers to ^4.4.3 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15197
- chore(deps): update dependency terser to v5.50.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15198
- chore(deps): update dependency diff to v9 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15201
- chore(deps): update dependency glob to v13 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15202
- chore(deps): update dependency sass-loader to v17 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15203
- chore(deps): update dependency less to v4.9.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15210
- chore(deps): update rust crate anymap to 1.1.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15211
- @doxxx93 made their first contribution in https://github.com/web-infra-dev/rspack/pull/15169
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.1.10...v2.2.0-beta.1
v2.1.10
[!NOTE] Removed noisy
import.metawarningsRspack 2.1.9 introduced warnings for unknown
import.metaproperties. Because they proved overly noisy in real-world builds, Rspack 2.1.10 removes them to reduce unnecessary diagnostics for custom or runtime-specific extensions. See #15166 for detail.
- feat: expose ExternalModule chunkCondition hook by @intellild in https://github.com/web-infra-dev/rspack/pull/15093
- feat: new cache system by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/15110
- feat: integrate new cache to minimize cache by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/15150
- fix(split-chunks): process remaining module copies at lower priorities by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/15079
- fix(esm_library): allow scope hoisting for
new URLtargets in new-url-relative mode by @elecmonkey in https://github.com/web-infra-dev/rspack/pull/15155 - fix(deps): bump rkyv to 0.8.18 (fixes RUSTSEC-2026-0233/0234/0235) by @jesses-canva in https://github.com/web-infra-dev/rspack/pull/15156
- fix(cli): normalize string
contextfrom loaded config by @stormslowly in https://github.com/web-infra-dev/rspack/pull/15162 - fix: share ExternalModule hooks across core instances by @intellild in https://github.com/web-infra-dev/rspack/pull/15163
- fix: new cache compile failed on 32-bit platforms by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/15175
- refactor: migrate rspack_dojang into monorepo by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15124
- docs: document Baseline queries by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15167
- docs: document webpack_layer by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15170
- chore: clean up CODEOWNERS by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15159
- chore(deps): update rstack to v0.5.1 by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15160
- test: add CSS benchmarks by @intellild in https://github.com/web-infra-dev/rspack/pull/15106
- revert: unknown import.meta property warnings by @intellild in https://github.com/web-infra-dev/rspack/pull/15166
- test: add Baseline query coverage by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15168
- chore(ci): drop binary size limit from required check by @stormslowly in https://github.com/web-infra-dev/rspack/pull/15171
- @jesses-canva made their first contribution in https://github.com/web-infra-dev/rspack/pull/15156
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.1.9...v2.1.10
v2.1.9
- feat: warn on unknown import.meta properties by @intellild in https://github.com/web-infra-dev/rspack/pull/14785
- feat: add builds for binding-linux-(ppc64,s390x)-gnu by @logonoff in https://github.com/web-infra-dev/rspack/pull/14962
- feat(create-rspack): support --no-git by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15133
- feat: support caseSensitive in import.meta.glob by @intellild in https://github.com/web-infra-dev/rspack/pull/14811
- perf(copy-plugin): cache and order static patterns by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15051
- perf: limit incremental HMR asset processing by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15063
- perf: avoid unnecessary call wrappers for runtime helpers by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15065
- perf: cache compilation assets proxy by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15070
- perf(cache): avoid copying aligned archive buffers by @matthewdavis-oai in https://github.com/web-infra-dev/rspack/pull/15024
- perf(json): avoid duplicating export dependency data by @matthewdavis-oai in https://github.com/web-infra-dev/rspack/pull/15023
- perf: improve source map convert performance by @intellild in https://github.com/web-infra-dev/rspack/pull/15138
- fix: improve circular real content hash error diagnostics by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14973
- fix: keep compilation dependency iterators disjoint by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15072
- fix(cache): align cache version semantics with webpack by @hardfist in https://github.com/web-infra-dev/rspack/pull/15000
- fix: preserve ignored URL when import.meta.url is disabled by @intellild in https://github.com/web-infra-dev/rspack/pull/15075
- fix(napi): avoid runtime lock deadlock by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15077
- fix(lazy): match compiler prefixes exactly by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15073
- fix(mf): avoid injecting shared providers into worker entrypoints by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15059
- fix: handle optional chains in member hook traversal by @zhsama in https://github.com/web-infra-dev/rspack/pull/15076
- fix: support loader context APIs in parallel loaders by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15092
- fix: warn on invalid chunk names by @HashemKhalifa in https://github.com/web-infra-dev/rspack/pull/14854
- fix: preserve imports in impure class expressions by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15098
- fix: preserve worker entrypoints when async chunks are disabled by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15096
- fix: align loader context docs and types with implementation by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15095
- fix(rstest): make import.meta.rstest resolver optional by @9aoy in https://github.com/web-infra-dev/rspack/pull/15097
- fix: handle context changes in import.meta.glob hooks by @intellild in https://github.com/web-infra-dev/rspack/pull/14897
- fix(types): align public API docs with declarations by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15107
- fix: preserve worker entrypoints during module deduplication by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14902
- fix(cli): restore config key completions in defineConfig by @upupming in https://github.com/web-infra-dev/rspack/pull/15140
- fix: deduplicate parse errors by source range by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15146
- refactor: extract parser options with AstObject derive by @intellild in https://github.com/web-infra-dev/rspack/pull/14886
- refactor: remove dead Rust code with Hawk by @hardfist in https://github.com/web-infra-dev/rspack/pull/15139
- docs: document loaderContext.addBuildDependency by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15082
- docs: document loaderContext.loaders and remainingRequest by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15084
- docs: migrate loaderContext examples to ESM by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15085
- docs: document loader dependency getters by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15087
- docs(release): group release targets by Node.js support tier by @stormslowly in https://github.com/web-infra-dev/rspack/pull/15088
- docs: document loader context environment by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15090
- docs: correct loader context callback and clearDependencies by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15091
- docs: fix invalid code examples by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15104
- docs: align more API type docs with declarations by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15109
- docs: correct Module Federation documentation by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15111
- docs: align stats hooks docs with implementation by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15126
- docs: improve Stats API documentation by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15132
- test: ensure Rsdoctor reports tree-shaken JSON sizes by @yifancong in https://github.com/web-infra-dev/rspack/pull/15055
- chore: migrate formatting to rs fmt by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15068
- chore(deps): replace create-rstack with create-toolkit by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15094
- chore(deps): update dependency mermaid to v11.16.1 [security] by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15099
- chore(binding): use system allocator for debug builds by @hardfist in https://github.com/web-infra-dev/rspack/pull/15103
- chore(binding): use native binaryen for wasm-opt by @stormslowly in https://github.com/web-infra-dev/rspack/pull/15100
- chore: update skill metadata and testing guidance by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15105
- chore(deps): update dependency @rspack/dev-server to ^2.2.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15115
- chore(deps): update rust crate swc_ecma_minifier to 57.0.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15113
- chore(deps): update dependency @playwright/test to v1.62.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15114
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15112
- chore(deps): update rstack to v0.4.0 by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15125
- chore(deps): update dependency happy-dom to ^20.11.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15120
- chore(deps): update dependency acorn to ^8.18.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15118
- chore: bump
swc_corefrom 72 to 76 by @CPunisher in https://github.com/web-infra-dev/rspack/pull/15122 - chore(deps): update dependency core-js to v3.50.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15119
- chore(deps): update rust crate fast-glob to 1.1.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15116
- chore(deps): update rust crate tokio to 1.53.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15117
- chore(deps): update dependency commander to v15 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15129
- chore(deps): update dependency @testing-library/jest-dom to v7 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15128
- chore(deps): update dependency jsdom to v30 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15130
- chore(deps): update dependency less-loader to v13 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15131
- chore(deps): update yarn to v4.18.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15127
- chore: document memory profiling workflows by @hardfist in https://github.com/web-infra-dev/rspack/pull/15108
- chore: upgrade rspack-resolver to 0.10.0 by @stormslowly in https://github.com/web-infra-dev/rspack/pull/15149
- @zhsama made their first contribution in https://github.com/web-infra-dev/rspack/pull/15076
- @HashemKhalifa made their first contribution in https://github.com/web-infra-dev/rspack/pull/14854
- @upupming made their first contribution in https://github.com/web-infra-dev/rspack/pull/15140
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.1.8...v2.1.9
v2.1.8
Rspack now supports cache.name and cache.storage.location, aligning with webpack's persistent cache semantics. cache.storage.directory is now the base directory, while the final cache location defaults to <directory>/<cache.name>. Default cache paths remain unchanged.
If you previously used storage.directory as the exact cache path, migrate it to storage.location. Existing cache data is not migrated automatically.
cache: {
type: 'persistent',
storage: {
type: 'filesystem',
- directory: '/custom/cache',
+ location: '/custom/cache',
},
}
- feat(rstest): inject module origin for import.meta.rstest by @9aoy in https://github.com/web-infra-dev/rspack/pull/15006
- feat: align persistent cache storage options with webpack by @hardfist in https://github.com/web-infra-dev/rspack/pull/15049
- feat(hmr): emit css.c / css.r in the hot-update manifest for precise CSS updates by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14682
- perf: avoid cloning Lightning CSS stylesheet AST by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14982
- perf: avoid cloning CSS module lists during ordering by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14984
- perf(copy): offload asset reads by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15022
- perf: share source across linking diagnostics by @hardfist in https://github.com/web-infra-dev/rspack/pull/15048
- fix(binding): preserve entry dependency identity by @matthewdavis-oai in https://github.com/web-infra-dev/rspack/pull/14964
- fix(loader): preserve lightningcss license comments by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14980
- fix(esm): add missing CJS interop runtime requirement by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14978
- fix(runtime): avoid dead require bootstrap by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14991
- fix(runtime): preserve collision-free createRequire imports by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14994
- fix: clean up compilation-scoped plugin caches by @matthewdavis-oai in https://github.com/web-infra-dev/rspack/pull/14999
- fix(rstest): hoist test API imports by source order by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15007
- fix(binding): release custom runtime module generators on close by @SyMind in https://github.com/web-infra-dev/rspack/pull/15008
- fix: preserve context exports in rspack runtime mode by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15001
- fix(runtime): correct full-hash chunk filenames by @matthewdavis-oai in https://github.com/web-infra-dev/rspack/pull/14997
- fix(copy-plugin): use POSIX asset keys by @matthewdavis-oai in https://github.com/web-infra-dev/rspack/pull/15015
- fix(runtime): remove redundant runtime declarations by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14993
- fix(worker): handle SharedWorker string name option by @elecmonkey in https://github.com/web-infra-dev/rspack/pull/15012
- fix: avoid runtime scope conflicts in module factories by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15002
- fix: preserve direct exports bindings by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15003
- fix(dll): serialize buildMeta.defaultObject as redirect-warn by @tusharsingh308 in https://github.com/web-infra-dev/rspack/pull/15016
- fix(json): match webpack source map behavior for generated modules by @matthewdavis-oai in https://github.com/web-infra-dev/rspack/pull/15014
- fix: keep property name when global is used in object shorthand by @lazerg in https://github.com/web-infra-dev/rspack/pull/15054
- fix: prevent compiler abort for exported rspackRequire by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/15050
- refactor(binding): replace compilation pointers with compilation ids by @SyMind in https://github.com/web-infra-dev/rspack/pull/14988
- docs: clarify optimization.nodeEnv defaults by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14976
- docs: invite @swwind to Rspack core team by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14977
- docs(binding): document JavaScript binding architecture by @SyMind in https://github.com/web-infra-dev/rspack/pull/14995
- docs: document unsupported webpack CLI options by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15017
- docs: improve webpack migration guidance by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15032
- docs: clarify webpack plugin migration by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15033
- docs(sources): add rspack_sources architecture guide by @SyMind in https://github.com/web-infra-dev/rspack/pull/15057
- chore(deps): update dependency @rslint/core to v0.7.2 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14936
- chore(deps): update dependency toml to ^4.3.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14942
- chore: remove obsolete pnpm configs by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14987
- chore: update shared Agent Skills by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14986
- chore: migrate Git hooks to Rstack CLI by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14989
- chore: migrate Rslint to Rstack CLI by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14990
- chore: migrate Rslib and Rsbuild to Rstack CLI by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14992
- chore: migrate Rstest and Rspress to Rstack CLI by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14998
- chore: replace migration skill with eco-ci debugger by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15009
- chore(deps): update dependency @rspress/core to ^2.0.19 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15029
- chore(deps): update dependency @rstest/adapter-rspack to ^0.11.5 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15031
- chore(deps): update dependency @module-federation/runtime-tools to v2.8.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15027
- chore(deps): update dependency @ast-grep/napi to ^0.45.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15030
- chore(deps): update dependency @rspack/lite-tapable to v1.1.5 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15028
- chore(deps): update github-actions by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15026
- chore: modernize Renovate configuration by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15040
- chore(deps): update dependency memfs to v4.64.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15036
- chore(deps): update dependency source-map to ^0.8.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15037
- chore(deps): update dependency terser to v5.49.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15038
- chore(deps): update dependency ts-checker-rspack-plugin to ^1.6.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15039
- chore(renovate): group all npm patch updates by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/15041
- chore(deps): update dependency less to v4.8.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15045
- chore(deps): update dependency markdown-to-jsx to ^9.10.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15046
- chore(deps): update dependency @rstest/core to ^0.11.5 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15044
- chore(deps): update dependency chalk to v6 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15043
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/15042
- chore(build): enable createRequire parser in Rslib builds by @Timeless0911 in https://github.com/web-infra-dev/rspack/pull/15058
- @tusharsingh308 made their first contribution in https://github.com/web-infra-dev/rspack/pull/15016
- @lazerg made their first contribution in https://github.com/web-infra-dev/rspack/pull/15054
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.1.7...v2.1.8
v2.1.7
Notice: The
import.meta.envexperimental feature introduced in Rspack 2.1.6 has been removed in Rspack 2.1.7.
- perf: share source code across diagnostics by @hardfist in https://github.com/web-infra-dev/rspack/pull/14967
- fix: revert "feat: support import.meta.env" by @intellild in https://github.com/web-infra-dev/rspack/pull/14975
- fix(binding): release module graph connection wrappers by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14965
- chore: release version 2.1.6 by @SyMind in https://github.com/web-infra-dev/rspack/pull/14966
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.1.6...v2.1.7
v2.1.6
- feat: support import.meta.env by @intellild in https://github.com/web-infra-dev/rspack/pull/14483
- perf: cache module concatenation analysis across roots by @ScriptedAlchemy in https://github.com/web-infra-dev/rspack/pull/14832
- perf: reuse module concatenation search state by @ScriptedAlchemy in https://github.com/web-infra-dev/rspack/pull/14833
- perf: reduce module concatenation hot-path overhead by @ScriptedAlchemy in https://github.com/web-infra-dev/rspack/pull/14834
- fix: materialize namespace object for concatenated modules by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14882
- fix: parse preserved createRequire arguments by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14813
- fix: invalidate module hashes when assigning deterministic and natural ids by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14878
- fix: disable incremental chunk assets for entry fullhash filenames by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14890
- fix: propagate asset emit errors by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14891
- fix(asset): avoid JavaScript output for URL-only assets by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14885
- fix(rslib): avoid worker external facade in bundleless output by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14900
- fix: execute worker entry modules in modern-module output by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14876
- fix(cli): preserve defineConfig inference by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14924
- fix(swc-loader): preserve structured swc diagnostics by @SyMind in https://github.com/web-infra-dev/rspack/pull/14921
- fix: respect DllPlugin context for concatenated modules by @hardfist in https://github.com/web-infra-dev/rspack/pull/14923
- fix(ci): resolve the binary-size base for stacked PRs by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14903
- fix(cache): scope maxVersions by compiler using compilerPath by @hardfist in https://github.com/web-infra-dev/rspack/pull/14954
- refactor(esm-library): remove redundant module marking by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14875
- refactor(runtime): collect runtime module variables from templates by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14917
- refactor(runtime): simplify modern-module output by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14741
- docs: recommend TypeScript 7 for ts-checker-rspack-plugin by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14901
- docs: refresh Rstack slogan by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14928
- docs: mention Vue DevTools integration by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14932
- docs: clarify resolve.modules behavior by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14953
- docs: fix formatting in split-chunks-plugin.mdx by @davidjb in https://github.com/web-infra-dev/rspack/pull/14963
- chore(deps): update dependency @module-federation/runtime-tools to v2.8.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14848
- chore(deps): update rust crate either to 1.16.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14693
- test(module-concat): add concatenation benchmark baselines by @@ScriptedAlchemy in https://github.com/web-infra-dev/rspack/pull/14831
- chore(ci): upload ci-profile binary size from main CI by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14868
- chore(deps): upgrade Rslib to 1.0.0-beta.1 by @Timeless0911 in https://github.com/web-infra-dev/rspack/pull/14925
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14838
- test: align defineConfig error assertions by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14930
- chore(deps): manage TypeScript with pnpm catalogs by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14931
- chore(deps): migrate workspace deps to pnpm catalogs by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14935
- chore(deps): update dependency ts-checker-rspack-plugin to ^1.5.3 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14943
- chore(deps): update dependency fs-extra to ^11.4.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14937
- chore(deps): update dependency http-proxy-middleware to ^4.2.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14938
- chore(deps): update dependency rspack-vue-loader to ^17.6.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14941
- chore(deps): update dependency lint-staged to ^17.2.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14939
- chore(deps): update dependency markdown-to-jsx to ^9.9.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14940
- @davidjb made their first contribution in https://github.com/web-infra-dev/rspack/pull/14963
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.1.5...v2.1.6
v2.1.5
- fix: respect runtime mode in mf identifiers by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14782
- fix(rsc): preserve multiple referenced client exports by @SyMind in https://github.com/web-infra-dev/rspack/pull/14794
- fix: preserve createRequire().resolve with literal import.meta.url when requireResolve is disabled by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14783
- fix(css): preserve inline match resource imports by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14803
- fix: short-circuit optional import.meta calls by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14806
- fix(rsc): preserve exports for dynamic client references by @SyMind in https://github.com/web-infra-dev/rspack/pull/14807
- fix(stats): avoid live chunk access when serializing stale stats by @SyMind in https://github.com/web-infra-dev/rspack/pull/14808
- fix(rstest): register hoisted mocks before importActual imports by @fi3ework in https://github.com/web-infra-dev/rspack/pull/14810
- fix(watcher): run FsWatcher on a single owner task to fix concurrent &mut races by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14829
- fix(worker): add module type when options are omitted in module output by @elecmonkey in https://github.com/web-infra-dev/rspack/pull/14874
- fix: include output path in chunk render cache keys by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14877
- fix: support real content hash update hooks by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14660
- refactor(binding): remove compilation pointer from async dependency block by @SyMind in https://github.com/web-infra-dev/rspack/pull/14797
- refactor(core): improve referenced export data struct by @SyMind in https://github.com/web-infra-dev/rspack/pull/14796
- chore(skills): add webpack test gap diff script by @intellild in https://github.com/web-infra-dev/rspack/pull/14805
- chore: update Rsdoctor diff action version by @yifancong in https://github.com/web-infra-dev/rspack/pull/14812
- chore(deps): update napi by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14837
- chore(deps): update dependency @rslint/core to v0.7.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14849
- chore: update simd-json and value-trait to fix stringify issue for CPUs without AVX/SSE4 capabilities by @intellild in https://github.com/web-infra-dev/rspack/pull/14828
- chore: add rspack perf codspeed goal skill by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14550
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.1.4...v2.1.5
v2.1.4
Building with output.module is now much faster. A lodash-es production build went from 503.8 ms to 161.6 ms (-67.9%).
module.parser.javascript.importMeta now accepts an object so each known import.meta property can be configured independently, on top of the existing true / false / 'preserve-unknown' values. Properties set to false are preserved for runtime evaluation, omitted properties keep their default behavior, and unknown properties are preserved. Both webpack-compatible keys (dirname, filename, main, url, webpack, webpackContext) and Rspack-specific keys (rspackHash, rspackPublicPath, glob, ...) are supported.
export default {
module: {
parser: {
javascript: {
importMeta: {
// keep `import.meta.url` for runtime evaluation
url: false,
// keep the compile-time replacement of `import.meta.webpack`
webpack: true,
},
},
},
},
};
module.parser.javascript.worker now accepts an object form with alias and url, alongside the existing boolean and string[] forms. With url: 'new-url-relative' and output.module enabled, Rspack emits a static new URL() expression for new Worker(new URL(..., import.meta.url)) instead of runtime code, honoring output.publicPath and output.workerPublicPath.
export default {
output: {
module: true,
chunkFilename: '[name].bundle.js',
},
module: {
parser: {
javascript: {
worker: {
url: 'new-url-relative',
},
},
},
},
};
new Worker(new URL('./worker.js', import.meta.url));
// would become 👇
new Worker(new URL('./worker.bundle.js', import.meta.url));
- feat(runtime): support logical assignment for chunk loading global by @fireairforce in https://github.com/web-infra-dev/rspack/pull/14655
- feat: support persistent cache for module hashes by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14717
- feat: support static worker new URL output by @intellild in https://github.com/web-infra-dev/rspack/pull/14728
- feat: support fine-grained import.meta parser options by @intellild in https://github.com/web-infra-dev/rspack/pull/14631
- perf(swc): enable parallel wasmtime compilation by @hardfist in https://github.com/web-infra-dev/rspack/pull/14716
- perf(hook): reduce hook macro expansion size and optimize performance by @intellild in https://github.com/web-infra-dev/rspack/pull/14633
- perf: optimize ESM linking passes by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14758
- perf: deduplicate repeated dynamic reexport code by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14748
- fix(ci): pick binary-size base by build-triggering commit by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14715
- fix: clean up runtime global rendering by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14735
- fix(binding): clean up chunk wrappers when compiler is GCed by @SyMind in https://github.com/web-infra-dev/rspack/pull/14736
- fix: enable runtime mode esm context imports by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14740
- fix: revert Module Federation runtime identifiers by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14761
- fix(fs): include paths in native filesystem errors by @hardfist in https://github.com/web-infra-dev/rspack/pull/14760
- fix: respect RSPACK_BINDING in loader workers by @hardfist in https://github.com/web-infra-dev/rspack/pull/14775
- fix: invalidate the target compiler for lazy compilation by @Kanary-channelio in https://github.com/web-infra-dev/rspack/pull/14781
- refactor(binding): avoid unsafe compilation access in chunk and module by @SyMind in https://github.com/web-infra-dev/rspack/pull/14671
- refactor: avoid runtime module iife in rspack mode by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14700
- refactor: colocate rspack runtime lexical globals by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14703
- refactor: rename empty context helpers by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14733
- refactor(cli): use @rstackjs/load-config by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14738
- refactor: use rspack runtime identifiers by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14739
- refactor: unify runtime globals render modes by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14762
- chore(ci): surface Windows Defender status after disable attempt by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14711
- chore(ci): read binary-size data via authenticated API by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14730
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14751
- chore(deps): update dependency @rslint/core to v0.6.5 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14749
- chore(deps): update dependency @module-federation/runtime-tools to v2.7.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14752
- chore(deps): update dependency webpack-sources to v3.5.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14750
- revert: "feat: support persistent cache for module hashes" by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14763
- @Kanary-channelio made their first contribution in https://github.com/web-infra-dev/rspack/pull/14781
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.1.3...v2.1.4
v2.1.3
- feat: add name/value accessors to ESMExportSpecifierDependency (#14641 by @yashwanth195)
- feat(core): expose the real Chunk instance to filename functions (#14549 by @JSerFeng)
- perf: erase js tap storage types to reduce binary size (#14636 by @intellild)
- perf: build rspack source maps directly (#14621 by @intellild)
- perf: optimize module hash creation (#14654 by @LingyuCoder)
- perf(mangle_exports): pre-size per-module maps and vecs (#14705 by @stormslowly)
- fix: update runtime context during hot updates (#14644 by @LingyuCoder)
- fix(concatenation): inline-value check must precede deferred pure checks (#14663 by @guru-irl)
- fix(css): skip re-applying unchanged CSS during HMR (#14580 by @stormslowly)
- fix(asset): preserve asset bytes for binary files (#14670 by @hardfist)
- fix(css): dedupe link HMR stylesheets (#14666 by @intellild)
- fix(mf): emit manifest assets with forward-slash names on Windows (#14667 by @johncarmack1984)
- fix(esm_library): unwrap dynamic source-phase imports in modern-module output (#14673 by @elecmonkey)
- fix(esm_library): preserve static source-phase external bindings (#14674 by @elecmonkey)
- fix(bench): pin glibc string-func dispatch to stabilize simulation benches (#14704 by @stormslowly)
- fix(css): distinguish css wrapper sourcemap names (#14675 by @intellild)
- fix(binding): keep path data chunk compatible (#14698 by @JSerFeng)
- refactor: use rspack runtime module prefix (#14630 by @LingyuCoder)
- refactor: split content hash from std Hash (#14384 by @intellild)
- refactor: rename hash objects for clearer semantics (#14642 by @intellild)
- refactor: use rspack scheme for source map defaults (#14635 by @LingyuCoder)
- refactor(runtime): collect runtime writes from ejs define (#14651 by @LingyuCoder)
- refactor(napi): remove napi tokio runtime dependency (#14696 by @hardfist)
- test: register misc bundle benchmark (#14632 by @hardfist)
- chore(release): stream per-package publish output (#14585 by @stormslowly)
- chore(deps): update github-actions (#14638 by @renovate[bot])
- ci: replace rust-cache with sccache (TOS) on self-hosted runners (#14567 by @stormslowly)
- ci: reset lynx-infra/cache action to d6bd70b (#14646 by @stormslowly)
- chore(ci): run binary size limit on linux mini runner (#14648 by @stormslowly)
- chore(ci): compare binary size against PR merge base (#14656 by @stormslowly)
- test: isolate emit-isolated-dts case to fix cross-suite dts write race (#14659 by @stormslowly)
- chore(deps): update github-actions (major) (#14639 by @renovate[bot])
- chore(deps): update dependency @rslint/core to v0.6.4 (#14678 by @renovate[bot])
- chore(deps): update patch npm dependencies (#14679 by @renovate[bot])
- chore(deps): update dependency prettier to v3.9.4 (#14680 by @renovate[bot])
- chore(deps): update rust crate tempfile to 3.27.0 (#14685 by @renovate[bot])
- chore(deps): update rust crate unicase to 2.9.0 (#14686 by @renovate[bot])
- chore(deps): update rust crate json-escape-simd to 3.1.0 (#14694 by @renovate[bot])
- chore(deps): update rust crate derive_more to 2.1.1 (#14692 by @renovate[bot])
- chore(deps): update rust crate clap to 4.6.1 (#14689 by @renovate[bot])
- chore(deps): update rust crate bytes to 1.12.0 (#14688 by @renovate[bot])
- chore(deps): update rust crate dashmap to 6.2.1 (#14691 by @renovate[bot])
- chore(deps): update rust crate criterion to 4.7.0 (#14690 by @renovate[bot])
- chore(deps): update napi to 3.10.3 (#14681 by @renovate[bot])
- chore: bump swc_core from 71 to 72 (#14709 by @CPunisher)
- chore(deps): bump rspack_resolver to 0.9.4 (#14710 by @stormslowly)
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v2.1.2...v2.1.3