v1.6.1
- perf: rspack sources memory by @SyMind in https://github.com/web-infra-dev/rspack/pull/12038
- fix: use match resource first when generating css local ident name by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12040
- fix: should export named webpack_require from runtime chunk by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12045
- fix: should increase the counter of sized in mangle exports plugin by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12044
- fix: compatibility
__non_webpack_require__with es modules by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12052 - fix: get chunk filename with dependOn by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12053
- fix: remove redundant
OutputFileSystem.createReadStreamby @colinaaa in https://github.com/web-infra-dev/rspack/pull/12059 - fix(config): validate
output.pathmust be absolute by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/12061 - fix: should disable default splitChunks rules for EsmLibraryPlugin by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/12047
- fix: should handle require ensure with error function by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12054
- fix: should parse webpackExports with empty array by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12066
- fix: use correct Cell for EsmLibraryPlugin by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/12067
- fix: properties of build meta should be optional when sending to dll plugin from javascript by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12070
- fix: treat HMR's
warnUnexpectedRequireas undefined module factory by @stormslowly in https://github.com/web-infra-dev/rspack/pull/12016 - fix: defer import and dynamic exportsType default export mixed by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/12082
- fix:
new URL("", import.meta.url)should be pure by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12076
- refactor: import external should not create needless external module by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/12064
- docs: add 1.6.0 release blog by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/12019
- docs: improve English clarity in documentation by @Copilot in https://github.com/web-infra-dev/rspack/pull/12060
- docs: move deprecated experimental options to the bottom by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/12049
- docs(quick-start): update non-interactive mode section by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/12083
- chore: release 1.6.0 by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/12042
- chore(deps): update dependency core-js to v3.46.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/12057
- chore(deps): update dependency @rslib/core to v0.17.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/12056
- chore(deps): update dependency @biomejs/biome to ^2.3.2 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/12055
- chore(renovate): disable lockFileMaintenance by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/12063
- chore: improve struct type and remove some useless fields by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/12071
- chore: ensure that prettier can format all markdown and JSON files by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/12075
- chore(deps): update dependency @babel/preset-react to ^7.28.5 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/12087
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/12084
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v1.6.0...v1.6.1
v1.6.0
🎉 See Announcing Rspack 1.6 for more details.
- perf(browser): minor performance optimization for @rspack/browser by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11795
- perf(swc_plugin_import): replace handlebars with custom template engine by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11852
- perf(cli): switch to cac and refactor code by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11893
- perf: replace graceful-fs with node:fs by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11894
- perf: remove JS side config validation by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11897
- perf(core): adjust default_blocking_threads to 4 in linux with slower fs by @hardfist in https://github.com/web-infra-dev/rspack/pull/11908
- perf: add support for module.unsafeCache configuration by @SyMind in https://github.com/web-infra-dev/rspack/pull/11898
- perf: don't drop rust compiler instance in non-watch mode by @hardfist in https://github.com/web-infra-dev/rspack/pull/11920
- perf: move crypto imports to lazy require calls by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11930
- perf: replace node:assert with explicit error checks by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11928
- perf(cli): replace colorette with picocolors by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11932
- perf: lazy load node:worker_threads to improve startup time by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11931
- perf(cli): simplify ESM file detection by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11946
- perf: use ustr for resource_identifier to avoid multiple copies by dependencies by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/12036
- feat(mf): runtimePlugins support pass params by @2heal1 in https://github.com/web-infra-dev/rspack/pull/11818
- feat(browser): support
modulesinBrowserRequirePluginby @CPunisher in https://github.com/web-infra-dev/rspack/pull/11822 - feat(mf): support lazy compilation by @2heal1 in https://github.com/web-infra-dev/rspack/pull/11779
- feat: enable lazy barrel by default by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11841
- feat: rslib supports add shims for js/esm by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11840
- feat: eval simple expression for enum member by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11859
- feat: implement
extractSourceMapoption by @colinaaa in https://github.com/web-infra-dev/rspack/pull/11814 - feat(esm): remove empty unneeded runtime chunks by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11892
- feat(create-rspack): add type annotations to JS configs by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11896
- feat: support defer import by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11871
- feat: EsmLibraryPlugin supports preserveModules by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11921
- feat: introduce allocative by @quininer in https://github.com/web-infra-dev/rspack/pull/11927
- feat(browser): re-export
memfsby @CPunisher in https://github.com/web-infra-dev/rspack/pull/11942 - feat: handle renamed webpack_require by compatibility plugin by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11975
- feat(browser): support CORS worker and custom wasm url by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11996
- feat(create-rspack): add AGENTS.md by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/12002
- feat: if no commonjs specific syntax detected, treat module as esm by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/12008
- feat: support ignoreList option in SourceMapDevToolPlugin by @SyMind in https://github.com/web-infra-dev/rspack/pull/12029
- feat: EsmLibraryPlugin can override invalid user config by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/12028
- fix(loader-runner): add missing break statements in switch cases by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11794
- fix: revert "fix: remove
serdefeature oflightningcss(#11706)" by @colinaaa in https://github.com/web-infra-dev/rspack/pull/11796 - fix: correct
stats.colortype to include fine-grained options by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11797 - fix: export interop default symbol and ensure import required chunks by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11793
- fix: should re-export real exportInfo when export dynamic js by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11776
- fix: should process runtime chunk after normal chunks of same chunk group by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11778
- fix: should use external source as name hint by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11825
- fix(swc_plugin_import): fix panic and optimize diagnostic logs by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11862
- fix: distinguish external modules when there are import attributes by @fi3ework in https://github.com/web-infra-dev/rspack/pull/11845
- fix: should render default exports for cjs entry and json entry by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11860
- fix: should export from entry chunk for cjs reexport default by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11884
- fix: should not cache dependency instance in DynamicEntryPlugin by @SyMind in https://github.com/web-infra-dev/rspack/pull/11888
- fix: updated dependencies sync to persistent cache by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11910
- fix: no need to create compiler instance when closing compiler by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11923
- fix: should allow override can_inline_use in flag dependency usage plugin by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11934
- fix: perf regression caused by is_deferred by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11944
- fix(create-rspack): polish README and configurations by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11953
- fix(mf): federation modules plugin hooks leak by @quininer in https://github.com/web-infra-dev/rspack/pull/11929
- fix(swcLoader): should correctly generate the default value of env_na… by @Zeahan in https://github.com/web-infra-dev/rspack/pull/11906
- fix(types): add createReadStream to OutputFileSystem interface by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11963
- fix: improve type safety for MultiStats options by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11964
- fix: should support entries() for compilation.chunks by @SyMind in https://github.com/web-infra-dev/rspack/pull/11971
- fix: esm output chunk module missing load dependent chunks by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11945
- fix: inline value for multiple runtime by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11983
- fix: unknown defined properties for exported enum by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11992
- fix: compilation.*_dep.added should not contains updated files by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11991
- fix: side effects optimize panic when remove lib file by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11939
- fix: should only top-level require wrapped modules for import side-effect specifier by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11997
- fix: use asset resource module as entry by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11993
- fix: Remove some unnecessary unsafe by @quininer in https://github.com/web-infra-dev/rspack/pull/12006
- fix: type definitions for devtool module filename templates by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/12013
- fix: incremental wrong provided exports results caused panic when delete module by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/12009
- fix: rayon iterator.consume will block in WASM by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/12022
- fix: calculate side effects of call exprs in seq expr by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12017
- fix: should remove related correctly in compilation.updateAsset by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12031
- fix: should resplace resource query in context replacement plugin by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12033
- fix(wasm): add another SharedArrayBuffer instance check by @CPunisher in https://github.com/web-infra-dev/rspack/pull/12037
- refactor: update type definitions to fix Rslint issues by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11798
- refactor: remove experiments.layers by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11819
- refactor: output.charset false by default by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11837
- refactor: make artifact collect affected dependencies by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11905
- refactor: clean up default stats plugins by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11904
- refactor: consolidate ModuleError and ModuleWarning classes by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11935
- refactor(watcher): split watcher from
rspack_fsby @h-a-n-a in https://github.com/web-infra-dev/rspack/pull/11948 - refactor(core): Convert BoxModule from type alias to newtype struct by @kdy1 in https://github.com/web-infra-dev/rspack/pull/11978
- refactor: normal module build by @SyMind in https://github.com/web-infra-dev/rspack/pull/11973
- refactor: side effects parser plugin by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12014
- refactor: source return string or buffer by @SyMind in https://github.com/web-infra-dev/rspack/pull/12023
- refactor: EsmLibraryPlugin should hold itself lock of data by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/12035
- docs: improve documentation for stats properties by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11792
- docs: explain how
resolve.aliasaffects package resolution by @SyMind in https://github.com/web-infra-dev/rspack/pull/11799 - docs(browser): add usage of
useInputFileSystemto "In-Memory File system" section by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11833 - docs(browser): Add compatibility with
resolve.aliasdescription for BrowserHttpImportEsmPlugin by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11838 - docs(config): optimization.chunkIds update by @vsn4ik in https://github.com/web-infra-dev/rspack/pull/11900
- docs: add guide for setting thread pool size via environment variable by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11912
- docs: fix zh readme miss two line in credits by @WuMingDao in https://github.com/web-infra-dev/rspack/pull/11917
- docs: sync zh and en readme by @WuMingDao in https://github.com/web-infra-dev/rspack/pull/11918
- docs: add layer feature guide doc by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11985
- docs: update roadmap content for Rspack 2.0 by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11994
- docs: update team members list by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/12000
- docs: update webpack loader repository links by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/12010
- docs: add docs for
experiements.deferImportby @ahabhgk in https://github.com/web-infra-dev/rspack/pull/12018 - docs: add Cloudflare and YouMind logos to who is using by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/12039
- test: run webpack multi compiler test cases with test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11787
- test: fix hot update loader by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11774
- chore: rspack_plugin_esm_library should have description by @SyMind in https://github.com/web-infra-dev/rspack/pull/11789
- chore: upgrade mf runtime tools to v0.19.1 by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11788
- test: run webpack stats cases with test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11791
- chore(deps): update dependency @rslib/core to v0.15.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11748
- chore(deps): lock file maintenance by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11783
- chore(deps): update dependency typescript to ^5.9.3 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11802
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11801
- chore(deps): update dependency memfs to v4.48.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11807
- chore(deps): update dependency zx to v8.8.4 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11811
- test: run webpack example cases with test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11820
- test: run webpack watch cases with test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11821
- chore(deps): update dependency @microsoft/api-extractor-model to v7.31.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11816
- chore(deps): update pnpm to v10.18.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11812
- test: skip flaky test cases by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11827
- test: run webpack hot cases with test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11826
- test: add type of test config files by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11831
- test: add missing await in basic tests by @deepcoldy in https://github.com/web-infra-dev/rspack/pull/11824
- test: align more test cases with webpack by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11834
- chore(wasm): bump and fix @napi-rs/wasm-runtime by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11836
- test: run webpack error cases with test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11839
- chore: avoid lazy compilation mf e2e flaky by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11843
- test: remove webpack tests by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11842
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11806
- ci: fix lazy-compilation persistent cache e2e case by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11844
- chore: fix Node typeless warning when building packages by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11847
- chore: clean up TODO comments and simplify code by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11848
- test: sync webpack config test cases to rspack by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11853
- test: inject test and rspack pathes by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11856
- test: remove legacy builtin configuration of builtin test cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11857
- chore: fix invalid lint:rs script in package.json by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11863
- test: rename all webpack config files to rspack by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11864
- test: remove
template.mdandreadme.mdin webpack-examples by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11865 - test: move test scripts to test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11866
- chore(swc_plugin_import): inherit workspace lint config by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11867
- test: remove legacy supports checker and test filter by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11868
- test: use new hot update plugin to run legacy hot cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11870
- chore: avoid using
BROWSERenv by @colinaaa in https://github.com/web-infra-dev/rspack/pull/11855 - test: use promise instead of done callback by @9aoy in https://github.com/web-infra-dev/rspack/pull/11872
- chore(deps): update pnpm to v10.18.3 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11875
- chore: enable some Rslint rules by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11869
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11874
- chore(deps): update github-actions by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11873
- chore: remove outdated OTP release scripts by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11885
- chore(deps): update dependency @playwright/test to v1.56.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11876
- chore: eliminate pnpm install platform warnings by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11889
- chore: clean up unused dependencies in test tools package by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11886
- chore(deps): update dependency react-refresh to ^0.18.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11810
- test(normalCases): use promise instead of done callback by @9aoy in https://github.com/web-infra-dev/rspack/pull/11879
- chore(deps): upgrade zod from v3 to v4 and update imports by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11883
- chore: Using env to enable sftrace by @quininer in https://github.com/web-infra-dev/rspack/pull/11880
- test: rewrite hot test cases with NEXT_HMR by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11882
- test: migrate config tests to rstest by @9aoy in https://github.com/web-infra-dev/rspack/pull/11895
- test: use jsdom runner to run most cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11901
- test: Revert 'migrate config tests to rstest (#11895)' by @9aoy in https://github.com/web-infra-dev/rspack/pull/11902
- test: add warn while closing compiler with failure by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11909
- test: migrate config tests to rstest by @9aoy in https://github.com/web-infra-dev/rspack/pull/11911
- ci: fix lazy-compilation/persistent-cache ci failed by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11926
- test: use jsdom runner to run all cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11924
- chore: enable Rslint rule: no-empty-interface by @shuga2704 in https://github.com/web-infra-dev/rspack/pull/11915
- chore: switch to self-hosted macOS runners by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11925
- chore: fix rustflags not work for dev profile by @quininer in https://github.com/web-infra-dev/rspack/pull/11936
- test: display error location in jsdom by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11937
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11957
- chore(deps): update dependency @arco-design/web-react to ^2.66.6 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11958
- chore(deps): update dependency @module-federation/runtime-tools to v0.21.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11959
- chore(deps): update crates swc_core to v45.0.1 by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11951
- test: enable
hideSkippedTestsoption by @9aoy in https://github.com/web-infra-dev/rspack/pull/11952 - chore(deps): update dependency @rslib/core to v0.16.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11960
- test: migrate more tests to rstest by @9aoy in https://github.com/web-infra-dev/rspack/pull/11947
- test: remove runtime diff test tool by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11968
- test: remove types of test tools that related to webpack by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11970
- chore(ci): fix flaky mf container-1-5 test cases by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11954
- test: no need to support multiples scope in one test case by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11972
- test: use rstest's default reporters in CI by @9aoy in https://github.com/web-infra-dev/rspack/pull/11981
- chore(ci): set timeout for pnpm setup action by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11976
- chore(deps): bump Rslib 0.16.1 to use better browserlist for es6 syntax by @Timeless0911 in https://github.com/web-infra-dev/rspack/pull/11984
- chore(build): add missing type declaration for rslib config by @situ2001 in https://github.com/web-infra-dev/rspack/pull/11982
- test: add debug mode of test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11987
- chore: enable Rslint rule: @typescript-eslint/no-redundant-type-constituents by @json-q in https://github.com/web-infra-dev/rspack/pull/11986
- test: fix rstest tests not found in windows by @9aoy in https://github.com/web-infra-dev/rspack/pull/11995
- test: migrate cli tests to rstest by @9aoy in https://github.com/web-infra-dev/rspack/pull/11989
- chore(ci): improve window cache speed with zstd by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11961
- chore: remove injected test code in diff test cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12001
- chore: rspack-resolver bump to 0.6.4 by @stormslowly in https://github.com/web-infra-dev/rspack/pull/12004
- test: should not panic for mf sharing asset modules by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/12003
- test: bump rstest to fix RSTEST_WORKER_ID by @9aoy in https://github.com/web-infra-dev/rspack/pull/12011
- chore: rm unsued cached source by @SyMind in https://github.com/web-infra-dev/rspack/pull/11754
- chore(deps): update github-actions by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/12026
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/12027
- test: enable more cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/12021
- test: migrate more jest tests to rstest by @9aoy in https://github.com/web-infra-dev/rspack/pull/12030
- test: migrate jest lazy tests to rstest by @9aoy in https://github.com/web-infra-dev/rspack/pull/12034
- chore(deps)!: bump swc_core to v46 by @CPunisher in https://github.com/web-infra-dev/rspack/pull/12032
- @deepcoldy made their first contribution in https://github.com/web-infra-dev/rspack/pull/11824
- @WuMingDao made their first contribution in https://github.com/web-infra-dev/rspack/pull/11917
- @shuga2704 made their first contribution in https://github.com/web-infra-dev/rspack/pull/11915
- @Zeahan made their first contribution in https://github.com/web-infra-dev/rspack/pull/11906
- @situ2001 made their first contribution in https://github.com/web-infra-dev/rspack/pull/11982
- @json-q made their first contribution in https://github.com/web-infra-dev/rspack/pull/11986
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v1.5.8...v1.6.0
v1.6.0-beta.1
EsmLibraryPlugin now provides experimental support for the preserveModules feature. This allows you to maintain your source code structure as is while bundling all libraries within the node_modules folder. You can try it out using the following configuration example:
Feel free to copy and use it!
import { rspack } from "@rspack/core";
import path from 'node:path'
export default{
entry: "./index.js",
output: {
chunkFormat: false, // required, EsmLibraryPlugin handles how chunk renders
chunkLoading: 'import', // required, using es module dynamic import syntax to load other chunks
},
optimization: {
runtimeChunk: true, // recommended if you have async chunks
concatenateModules: false, // required, EsmLibraryPlugin handles scope hoisting
},
plugins: [
new rspack.experiments.EsmLibraryPlugin({
preserveModules: path.resolve(__dirname, './src')
})
],
};
Rspack now supports defer import, you can enable it by experiments.deferImport = true. It is worth noting that we currently only support import defer, import.defer() will be implemented in the near future.
export default {
experiments: {
deferImport: true
}
}
- perf(cli): switch to cac and refactor code by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11893
- perf: replace graceful-fs with node:fs by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11894
- perf: remove JS side config validation by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11897
- perf(core): adjust default_blocking_threads to 4 in linux with slower fs by @hardfist in https://github.com/web-infra-dev/rspack/pull/11908
- perf: add support for module.unsafeCache configuration by @SyMind in https://github.com/web-infra-dev/rspack/pull/11898
- perf: don't drop rust compiler instance in non-watch mode by @hardfist in https://github.com/web-infra-dev/rspack/pull/11920
- perf: move crypto imports to lazy require calls by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11930
- perf: replace node:assert with explicit error checks by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11928
- perf(cli): replace colorette with picocolors by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11932
- perf: lazy load node:worker_threads to improve startup time by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11931
- feat(esm): remove empty unneeded runtime chunks by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11892
- feat(create-rspack): add type annotations to JS configs by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11896
- feat: support defer import by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11871
- feat: EsmLibraryPlugin supports preserveModules by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11921
- fix: should export from entry chunk for cjs reexport default by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11884
- fix: should not cache dependency instance in DynamicEntryPlugin by @SyMind in https://github.com/web-infra-dev/rspack/pull/11888
- fix: updated dependencies sync to persistent cache by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11910
- fix: no need to create compiler instance when closing compiler by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11923
- fix: should allow override can_inline_use in flag dependency usage plugin by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11934
- fix: perf regression caused by is_deferred by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11944
- refactor: make artifact collect affected dependencies by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11905
- refactor: clean up default stats plugins by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11904
- refactor: consolidate ModuleError and ModuleWarning classes by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11935
- docs(config): optimization.chunkIds update by @vsn4ik in https://github.com/web-infra-dev/rspack/pull/11900
- docs: add guide for setting thread pool size via environment variable by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11912
- docs: fix zh readme miss two line in credits by @WuMingDao in https://github.com/web-infra-dev/rspack/pull/11917
- docs: sync zh and en readme by @WuMingDao in https://github.com/web-infra-dev/rspack/pull/11918
- test: use promise instead of done callback by @9aoy in https://github.com/web-infra-dev/rspack/pull/11872
- chore(deps): update pnpm to v10.18.3 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11875
- chore: enable some Rslint rules by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11869
- chore: release v1.6.0-beta.0 by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11830
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11874
- chore(deps): update github-actions by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11873
- chore: remove outdated OTP release scripts by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11885
- chore(deps): update dependency @playwright/test to v1.56.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11876
- chore: eliminate pnpm install platform warnings by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11889
- chore: clean up unused dependencies in test tools package by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11886
- chore(deps): update dependency react-refresh to ^0.18.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11810
- test(normalCases): use promise instead of done callback by @9aoy in https://github.com/web-infra-dev/rspack/pull/11879
- chore(deps): upgrade zod from v3 to v4 and update imports by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11883
- chore: Using env to enable sftrace by @quininer in https://github.com/web-infra-dev/rspack/pull/11880
- test: rewrite hot test cases with NEXT_HMR by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11882
- test: migrate config tests to rstest by @9aoy in https://github.com/web-infra-dev/rspack/pull/11895
- test: use jsdom runner to run most cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11901
- test: Revert 'migrate config tests to rstest (#11895)' by @9aoy in https://github.com/web-infra-dev/rspack/pull/11902
- test: add warn while closing compiler with failure by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11909
- test: migrate config tests to rstest by @9aoy in https://github.com/web-infra-dev/rspack/pull/11911
- ci: fix lazy-compilation/persistent-cache ci failed by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11926
- test: use jsdom runner to run all cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11924
- chore: enable Rslint rule: no-empty-interface by @shuga2704 in https://github.com/web-infra-dev/rspack/pull/11915
- chore: switch to self-hosted macOS runners by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11925
- chore: fix rustflags not work for dev profile by @quininer in https://github.com/web-infra-dev/rspack/pull/11936
- test: display error location in jsdom by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11937
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11957
- chore(deps): update dependency @arco-design/web-react to ^2.66.6 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11958
- chore(deps): update dependency @module-federation/runtime-tools to v0.21.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11959
- chore(deps): update crates swc_core to v45.0.1 by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11951
- @WuMingDao made their first contribution in https://github.com/web-infra-dev/rspack/pull/11917
- @shuga2704 made their first contribution in https://github.com/web-infra-dev/rspack/pull/11915
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v1.6.0-beta.0...v1.6.0-beta.1
v1.6.0-beta.0
Rspack now provides a new ESM library output that is cleaner, statically analyzable, and supports custom chunk splitting.
This new output format is fully independent of the existing chunk loading logic — each chunk can be used in isolation, and all exports are placed at the top level instead of being wrapped inside the __webpack_modules__ closure.
- Before:
exports.modules = {
"src/async-module.js": function(exports) {
__webpack_require__.d(exports, {
foo: () => foo
})
const foo = 42
}
}
- After:
// src/async-module.js
const foo = 42
export { foo }
If you'd like to try this now, follow this example:
import { rspack } from "@rspack/core";
export default{
entry: "./index.js",
output: {
chunkFormat: false, // required, EsmLibraryPlugin handles how chunk renders
chunkLoading: 'import', // required, using es module dynamic import syntax to load other chunks
},
optimization: {
runtimeChunk: true, // recommended if you have async chunks
concatenateModules: false, // required, EsmLibraryPlugin handles scope hoisting
},
plugins: [new rspack.experiments.EsmLibraryPlugin()],
};
We'll make this out-of-box in Rslib soon.
See EsmLibraryPlugin for more.
The layer feature is now enabled by default - you no longer need to enable it manually using the experiments.layer option.
Layers is a feature that helps you group certain modules and their dependencies, allowing you to bundle them using different transforms.
For example, you can generate both ES5 and ES2015 outputs in one compilation by assigning different layers to different entries with the following configuration:
export default {
entry: {
legacy: {
import: "./index.js",
layer: "es5",
},
modern: {
import: "./index.js",
layer: "es6",
},
},
module: {
rules: [
{
test: /\.js$/,
oneOf: [
{
issuerLayer: "es5",
use: [
{
loader: "builtin:swc-loader",
options: {
jsc: {
target: "es5",
// ...
},
},
},
],
},
{
issuerLayer: "es6",
use: [
{
loader: "builtin:swc-loader",
options: {
jsc: {
target: "es2015",
// ...
},
},
},
]
},
],
},
],
},
};
Rspack now supports extracting existing source map data from files (from their //# sourceMappingURL comment) via Rule.extractSourceMap. This feature is particularly useful for preserving source maps provided by third-party libraries, ensuring that debugging information remains accurate even when those libraries are bundled or transformed.
It was originally introduced in webpack v5.102.0 as a built-in replacement for the source-map-loader plugin, offering better performance and tighter integration with the build process.
export default {
// ...
module: {
rules: [
{
test: /\.m?js$/,
extractSourceMap: true,
},
],
},
};
Since Rspack v1.5 introduced experimental barrel file optimization, it has been enabled by default in Rsbuild to collect early feedback.
After extensive usage and validation within Rsbuild, we now consider lazyBarrel stable, and it is enabled by default in Rspack as well.
- perf(browser): minor performance optimization for @rspack/browser by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11795
- perf(swc_plugin_import): replace handlebars with custom template engine by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11852
- feat(mf): runtimePlugins support pass params by @2heal1 in https://github.com/web-infra-dev/rspack/pull/11818
- feat(browser): support
modulesinBrowserRequirePluginby @CPunisher in https://github.com/web-infra-dev/rspack/pull/11822 - feat(mf): support lazy compilation by @2heal1 in https://github.com/web-infra-dev/rspack/pull/11779
- feat: enable lazy barrel by default by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11841
- feat: rslib supports add shims for js/esm by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11840
- feat: eval simple expression for enum member by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11859
- feat: implement
extractSourceMapoption by @colinaaa in https://github.com/web-infra-dev/rspack/pull/11814
- fix(loader-runner): add missing break statements in switch cases by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11794
- fix: revert "fix: remove
serdefeature oflightningcss(#11706)" by @colinaaa in https://github.com/web-infra-dev/rspack/pull/11796 - fix: correct
stats.colortype to include fine-grained options by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11797 - fix: export interop default symbol and ensure import required chunks by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11793
- fix: should re-export real exportInfo when export dynamic js by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11776
- fix: should process runtime chunk after normal chunks of same chunk group by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11778
- fix: should use external source as name hint by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11825
- fix(swc_plugin_import): fix panic and optimize diagnostic logs by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11862
- fix: distinguish external modules when there are import attributes by @fi3ework in https://github.com/web-infra-dev/rspack/pull/11845
- fix: should render default exports for cjs entry and json entry by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11860
- refactor: update type definitions to fix Rslint issues by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11798
- refactor: remove experiments.layers by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11819
- refactor: output.charset false by default by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11837
- docs: improve documentation for stats properties by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11792
- docs: explain how
resolve.aliasaffects package resolution by @SyMind in https://github.com/web-infra-dev/rspack/pull/11799 - docs(browser): add usage of
useInputFileSystemto "In-Memory File system" section by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11833 - docs(browser): Add compatibility with
resolve.aliasdescription for BrowserHttpImportEsmPlugin by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11838
- test: run webpack multi compiler test cases with test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11787
- test: fix hot update loader by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11774
- chore: rspack_plugin_esm_library should have description by @SyMind in https://github.com/web-infra-dev/rspack/pull/11789
- chore: upgrade mf runtime tools to v0.19.1 by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11788
- test: run webpack stats cases with test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11791
- chore(deps): update dependency @rslib/core to v0.15.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11748
- chore(deps): lock file maintenance by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11783
- chore(deps): update dependency typescript to ^5.9.3 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11802
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11801
- chore(deps): update dependency memfs to v4.48.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11807
- chore(deps): update dependency zx to v8.8.4 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11811
- test: run webpack example cases with test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11820
- test: run webpack watch cases with test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11821
- chore(deps): update dependency @microsoft/api-extractor-model to v7.31.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11816
- chore(deps): update pnpm to v10.18.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11812
- test: skip flaky test cases by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11827
- test: run webpack hot cases with test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11826
- test: add type of test config files by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11831
- test: add missing await in basic tests by @deepcoldy in https://github.com/web-infra-dev/rspack/pull/11824
- test: align more test cases with webpack by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11834
- chore(wasm): bump and fix @napi-rs/wasm-runtime by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11836
- test: run webpack error cases with test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11839
- chore: avoid lazy compilation mf e2e flaky by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11843
- test: remove webpack tests by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11842
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11806
- ci: fix lazy-compilation persistent cache e2e case by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11844
- chore: fix Node typeless warning when building packages by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11847
- chore: clean up TODO comments and simplify code by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11848
- test: sync webpack config test cases to rspack by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11853
- test: inject test and rspack pathes by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11856
- test: remove legacy builtin configuration of builtin test cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11857
- chore: fix invalid lint:rs script in package.json by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11863
- test: rename all webpack config files to rspack by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11864
- test: remove
template.mdandreadme.mdin webpack-examples by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11865 - test: move test scripts to test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11866
- chore(swc_plugin_import): inherit workspace lint config by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11867
- test: remove legacy supports checker and test filter by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11868
- test: use new hot update plugin to run legacy hot cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11870
- chore: avoid using
BROWSERenv by @colinaaa in https://github.com/web-infra-dev/rspack/pull/11855
- @deepcoldy made their first contribution in https://github.com/web-infra-dev/rspack/pull/11824
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v1.5.8...v1.6.0-beta.0
v1.5.8
Rspack now supports more precise tree shaking for nested exports accessed through destructuring assignments.
// lib.js
export * as a from "./a";
export * as b from "./b";
// index.js
import * as lib from "./lib";
// Before: All exports under `lib.a` were retained, only `lib.b` was tree-shaken
// Now: Only the specific property `inner` from `lib.a` is kept; everything else is removed
const { a: { inner } } = lib;
- perf: rspack sources buffer function by @SyMind in https://github.com/web-infra-dev/rspack/pull/11749
- perf: avoid unnecessary source map creation by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11773
- feat: should retain source error name by @SyMind in https://github.com/web-infra-dev/rspack/pull/11762
- feat(parser): add
commonjsoptions by @fi3ework in https://github.com/web-infra-dev/rspack/pull/11744 - feat: transform url in new URL without runtime by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11765
- feat: add experimental EsmLibraryPlugin for better esm output by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/10350
- feat: tree shaking nested exports for destructuring assignment by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11781
- fix: cjs export require tree shaking by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11758
- fix: should always walk import then arguments by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11760
- fix: should update alias resolution when a higher-priority file is created in watch mode by @SyMind in https://github.com/web-infra-dev/rspack/pull/11643
- fix: should analyze correct variable for dynamic import by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11768
- fix: URLPlugin in child compiler by @SyMind in https://github.com/web-infra-dev/rspack/pull/11785
- refactor: remove unused parameters and clean up code by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11756
- refactor: file counter save the resource id which used the file by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11757
- docs: add commonjsMagicComments docs by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11752
- docs: document parser jsx option by @fi3ework in https://github.com/web-infra-dev/rspack/pull/11767
- docs: add Snap to who is using section by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11777
- docs(style): remove unexpected borders on code block focus by @ritoban23 in https://github.com/web-infra-dev/rspack/pull/11784
- test: remove simple tester by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11751
- chore(deps): update dependency memfs to v4.46.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11721
- test: close compiler by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11764
- chore(deps): lock file maintenance by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11726
- test: add persistent cache symlink test case by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11769
- chore(deps): update swc by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11747
- @ritoban23 made their first contribution in https://github.com/web-infra-dev/rspack/pull/11784
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v1.5.7...v1.5.8
v1.5.7
This release enhances tree shaking capabilities specifically for the .then() callbacks of dynamic imports. Rspack can now statically analyze and eliminate unused exports when destructuring is performed on the resolved module within promise chains:
// Tree shaking now works for destructuring in .then() callbacks
import('./utils').then(module => {
const { usedFunction } = module; // Only usedFunction will be included
usedFunction();
// unusedFunction will be tree-shaken out
});
Rspack now supports parsing and preserving JSX syntax. This allows JSX syntax to be parsed without transformation, making it compatible with external JSX transformers.
// rspack.config.js
export default {
module: {
parser: {
javascript: {
jsx: true // Enable JSX parsing
}
},
rules: [
{
test: /\.jsx?$/,
use: {
loader: 'swc-loader',
options: {
jsc: {
parser: { jsx: true },
transform: {
// Preserve JSX syntax
react: { runtime: 'preserve' }
}
}
}
}
}
]
}
};
- feat: static analyze destructuring assignment dynamic import variable for tree shaking by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11731
- feat: parser support jsx by @fi3ework in https://github.com/web-infra-dev/rspack/pull/11664
- fix: correct infrastructureLog type and add documentation by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11742
- fix: inline enum not only properties used by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11740
- fix: mf should correctly hoist modules by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11743
- docs: improve Web Workers documentation with more details by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11737
- test: refactor processor by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11732
- test: rename config files by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11733
- test: remove processor by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11738
- test: remove runner factory by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11741
- chore(deps): update github-actions by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11746
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11680
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v1.5.6...v1.5.7
v1.5.6
- perf: IndexSet for ArcPath by @SyMind in https://github.com/web-infra-dev/rspack/pull/11727
- feat: rspack_cacheable add custom with wrapper by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11711
- feat: persistent cache save ModuleProfiler by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11715
- feat: static analyse import then for tree shaking by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11665
- feat: support webpackIgnore in commonjs require by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11704
- fix: align context module element dependence resource identifer with webpack by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11674
- fix: inline value condition connection active for re-export by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11701
- fix: support non-ascii paths in dirname by @hardfist in https://github.com/web-infra-dev/rspack/pull/11686
- fix(rslib): only treat "module" as normal variable when module have ESM syntax by @fi3ework in https://github.com/web-infra-dev/rspack/pull/11634
- fix: remove
serdefeature oflightningcssby @colinaaa in https://github.com/web-infra-dev/rspack/pull/11706 - fix(browser): inject
Bufferby @CPunisher in https://github.com/web-infra-dev/rspack/pull/11714
- refactor: rspack_cacheable
owned_or_refimplement rkyv macro by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11708 - refactor: rspack module profiler by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11712
- docs: update test path by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11690
- docs(resolve): clarify mainFields behavior and exports precedence by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11696
- docs: update join-us page content and structure by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11700
- chore: release v1.5.5 by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11688
- ci: fix build-dependencies-resolve test case by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11692
- test: use case directory name as case names to match the filter by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11699
- test: refactor runner by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11705
- test: split snapshots to the case directories by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11707
- chore(deps): update crate swc_core to v42.0.2 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11702
- test: enable lazyBarrel and inlineConst for rspack-test by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11710
- chore(deps): update swc plugins and crates by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11602
- chore(deps): update dependency case-police to v2 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11719
- chore(deps): update dependency heading-case to v1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11720
- chore(deps): update dependency cross-env to v10 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11722
- chore(deps): update dependency cspell to v9 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11723
- chore(website): Add link for the positions in position-information by @danpeen in https://github.com/web-infra-dev/rspack/pull/11728
- @danpeen made their first contribution in https://github.com/web-infra-dev/rspack/pull/11728
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v1.5.5...v1.5.6
v1.5.5
- fix: should walk call member chain args for dynamic import referenced by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11661
- fix(core): support NAPI_RS_NATIVE_LIBRARY_PATH by @hardfist in https://github.com/web-infra-dev/rspack/pull/11670
- fix: inline value condition for namespace import by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11679
- fix: allow Infinity for stats space options by @hardfist in https://github.com/web-infra-dev/rspack/pull/11685
- fix: inline value with export as by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11687
- docs: remove incorrect
emitRecordscompiler hook by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11671 - docs: improve
resolve.extensionsconfiguration by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11672 - docs: fix esm document example errors by @lzxb in https://github.com/web-infra-dev/rspack/pull/11673
- test: run webpack normal test cases with rspack test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11660
- chore: deprecate copilot-instruction.md in favor of AGHENTS.md by @hardfist in https://github.com/web-infra-dev/rspack/pull/11669
- test: run webpack normal hot test cases with rspack test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11662
- chore(refactor): inline base64 utilities into rspack_util by @hardfist in https://github.com/web-infra-dev/rspack/pull/11668
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11297
- test: run webpack compiler test cases with rspack test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11676
- chore(deps): bump rspack-resolver to v0.6.3 by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11639
- chore: add setup script and update AGENTS.md by @hardfist in https://github.com/web-infra-dev/rspack/pull/11684
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v1.5.4...v1.5.5
v1.5.4
- perf: fix drop regression by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11649
- perf: introduce pre-computed hashing for ArcPath by @SyMind in https://github.com/web-infra-dev/rspack/pull/11651
- feat: add inline value condition for reexport by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11628
- feat: throw specified error to indicate undefined factory case in HMR by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11584
- fix: e2e lazy-compialtion/default-prefix flasky by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/11610
- fix: no mangle for enum member value by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11629
- fix: revert "fix(rslib): treat
moduleidentifier as normal (#11588)" by @fi3ework in https://github.com/web-infra-dev/rspack/pull/11630 - fix: webpackexports comment by @zhangyuang in https://github.com/web-infra-dev/rspack/pull/11597
- fix: mark import.meta.webpackHot type as optional by @yf-yang in https://github.com/web-infra-dev/rspack/pull/11638
- fix: persistent cache update issuer is updated modules by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11633
- fix: using tokens from parser to handle asi by @hardfist in https://github.com/web-infra-dev/rspack/pull/11577
- fix: ensure resource data always have resource path by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11632
- refactor: remove expect for lazy barrel pending forwarded ids by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11646
- refactor: use temporary data to replace unsupported Module by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11652
- docs: remove
Preview with stackblitzsection by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11614 - docs(browser): update
BrowserHttpImportEsmPluginand add "Using Module Federation" by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11640 - docs: correct dynamic call to writeModule example by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11650
- test: move rspack test cases to
tests/rspack-testby @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11617 - test: fix concurrent of config cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11618
- chore(deps): update dependency @rslib/core to v0.13.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11624
- chore(deps): update github-actions by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11623
- chore(deps): update dependency postcss-loader to ^8.2.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11604
- chore(deps): update dependency create-rstack to v1.6.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11625
- chore(deps): update dependency emnapi to ^1.5.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11626
- chore: enable canary nightly release by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11627
- chore: make @rspack/tests private by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11636
- chore(ci): add fallback value for scheduled workflow run by @stormslowly in https://github.com/web-infra-dev/rspack/pull/11641
- chore(deps): update dependency axios to v1.12.0 [security] by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11653
- chore(deps): update pnpm to v10.16.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11605
- test: run webpack config test cases with rspack test tools by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11645
- chore(ci): add rstest to ecosystem-ci by @9aoy in https://github.com/web-infra-dev/rspack/pull/11657
- @zhangyuang made their first contribution in https://github.com/web-infra-dev/rspack/pull/11597
- @yf-yang made their first contribution in https://github.com/web-infra-dev/rspack/pull/11638
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v1.5.3...v1.5.4
v1.5.3
Rspack v1.5.3 ships advanced tree-shaking for dynamic imports via member expression analysis.
Ongoing improvements are in progress, and upcoming releases will continue to improve static analysis to cover more syntax patterns, such as dynamic import with a subsequent .then().
- perf: improve bundle splitting by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11556
- perf: improve for each runtime by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11573
- perf: improve exports info by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11524
- perf: improve deterministic chunk ids by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11575
- perf: improve get chunk modules by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11579
- perf: improve create hash by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11598
- perf: drop some big data in rayon by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/11611
- feat(browser): support
ModuleFederationPluginby @CPunisher in https://github.com/web-infra-dev/rspack/pull/11558 - feat: simplify mock logic, dynamic import based hoist by @fi3ework in https://github.com/web-infra-dev/rspack/pull/11521
- feat: add css field support in Experiments configuration by @ityuany in https://github.com/web-infra-dev/rspack/pull/11548
- feat: add start time parameter to NativeWatcher by @GiveMe-A-Name in https://github.com/web-infra-dev/rspack/pull/11570
- feat: tree shake statically analyse-able dynamic import by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11457
- feat: static analyze in operator for esm import specifier by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11613
- feat(browser): add
postprocessandResolvedRequesttoBrowserHttpImportEsmPluginby @CPunisher in https://github.com/web-infra-dev/rspack/pull/11571
- fix: don't throw error when browserslist config is resolved from env var by @Themezv in https://github.com/web-infra-dev/rspack/pull/11528
- fix: use stable swc lexer for correct asi by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11555
- fix: mf hoist should record mutation by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11560
- fix: respect to
jsc.output.charsetin swc loader by @CPunisher in https://github.com/web-infra-dev/rspack/pull/11568 - fix: BuildDependencies resolve exports_fields incorrectly by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11576
- fix(types): correct the source map type for loaders by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11574
- fix: only enable inline const in production by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11591
- fix(rslib): treat
moduleidentifier as normal by @fi3ework in https://github.com/web-infra-dev/rspack/pull/11588 - fix: css-chunking-plugin for global css by @SyMind in https://github.com/web-infra-dev/rspack/pull/11592
- fix: flaky css chunking test case by @SyMind in https://github.com/web-infra-dev/rspack/pull/11608
- fix: swc wasmtime cache corruption by @quininer in https://github.com/web-infra-dev/rspack/pull/11607
- refactor: use for_name for cjs import parser plugin by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11569
- refactor: rspack error by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11500
- refactor: Dependency remove source_map field by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11582
- refactor: private javascript parser dependencies by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11587
- refactor: lazy compilation stop cache create_data by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11612
- refactor: remove wasm plugin useless code by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/11615
- docs: add tree shaking blog to the blog list by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11561
- docs(loader-api): add new sections for handling source maps by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11585
- docs: fix esm syntax error by @lzxb in https://github.com/web-infra-dev/rspack/pull/11601
- chore(deps): update dependency @rsbuild/plugin-sass to ^1.4.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11564
- chore(deps): update dependency @shikijs/transformers to ^3.12.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11566
- chore(deps): update dependency @rspack/plugin-react-refresh to ^1.5.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11565
- chore: use pnpm in package.json scripts by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11520
- chore: use local package for scripts by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/11572
- chore(workflow): allow renovate to update SWC related crates by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11580
- chore(deps): update crate swc_core to v38.0.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11586
- chore: update Rspress to beta.31 to use JSON schemas by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/11596
- chore(deps): update dependency memfs to v4.38.2 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11603
- chore(deps): update swc (major) by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/11606
- @Themezv made their first contribution in https://github.com/web-infra-dev/rspack/pull/11528
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v1.5.2...v1.5.3