Releases: web-infra-dev/rsbuild
v1.5.0-beta.0
Highlights π‘
Drop support for Node 16
Node.js 16 reached its end-of-life on September 11, 2023. Many other npm packages in the ecosystem have also dropped support for Node 16, including webpack-dev-server, css-loader, sass-loader, and so on, which makes maintaining compatibility increasingly challenging. Therefore, we have decided to drop Node 16 support starting from Rsbuild v1.5 to ensure better compatibility with the modern ecosystem.
| Package | v1.4 | v1.5 |
|---|---|---|
| @rspack/core | >=16.0.0 | >=18.12.0 |
| @rspack/cli | >=18.12.0 | >=18.12.0 |
| @rspack/dev-server | >=18.12.0 | >=18.12.0 |
| @rsbuild/core | >=16.10.0 | >=18.12.0 |
β οΈ This is a breaking change for users still running Node.js 16. Users will need to upgrade to Node.js 18.12.0 or later to use Rsbuild v1.5.
For users currently using Node.js 16:
- Upgrade to Node.js 18.12.0 or later (Node.js 22 LTS is recommended)
- Update your CI/CD pipelines to use the new Node.js version
Parallel Less Compilation
This release adds support for parallel loader execution to @rsbuild/plugin-less. If your project uses the @rsbuild/plugin-less and contains a large number of Less files, you can enable parallel compilation to improve build performance.
pluginLess({
parallel: true,
});What's Changed
New Features π
- feat!: update minimum Node.js version to 18.12.0 by @chenjiahan in #5786
- feat: add
onBeforeDevCompileplugin hook by @9aoy in #5788 - feat: improve command descriptions and documentations by @chenjiahan in #5792
- feat(plugin-less): support for parallel loader execution by @chenjiahan in #5805
- feat: allow to custom Wasm filename hash by @chenjiahan in #5807
- feat(deps): update @rspack/core to v1.5.0-beta.0 by @chenjiahan in #5818
Performance π
- perf: update build configs to target ES2022 by @chenjiahan in #5790
- perf: remove pre-bundling of postcss-load-config by @chenjiahan in #5808
Bug Fixes π
- fix(cli): ensure consistent spacing for npx of node 20+ by @chenjiahan in #5791
- fix(cli): skip greeting when help is requested by @chenjiahan in #5794
- fix(cli): ensure consistent spacing for node run script by @chenjiahan in #5813
Refactor π¨
- refactor: eliminate switch exhaustiveness checks by @chenjiahan in #5803
Document π
- docs: update JavaScript runtime installation instructions by @chenjiahan in #5787
- docs: add less parallel to build performance guide by @chenjiahan in #5809
- docs: add version info to onBeforeDevCompile hook by @chenjiahan in #5811
- docs: improve code splitting documentation clarity by @chenjiahan in #5816
Other Changes
- test(e2e): replace execSync and npx with a faster helper by @chenjiahan in #5783
- test(e2e): replace direct exec calls with faster helper by @chenjiahan in #5784
- chore: replace npx with pnpx in bump scripts by @chenjiahan in #5785
- chore: remove node 16 compatibility patches and comments by @chenjiahan in #5789
- chore(deps): update dependency @rsdoctor/rspack-plugin to v1.2.0 by @renovate[bot] in #5793
- chore: exclude additional directories from biome by @chenjiahan in #5795
- chore(deps): update @rslint/core to v0.1.7 by @chenjiahan in #5797
- chore(deps): update dependency svelte to ^5.38.0 by @renovate[bot] in #5801
- chore(deps): update dependency rsbuild-plugin-open-graph to ^1.1.0 by @renovate[bot] in #5800
- chore(deps): update dependency react-router-dom to ^7.8.0 by @renovate[bot] in #5799
- chore: remove unnecessary type assertions by @chenjiahan in #5802
- release: @rsbuild/plugin-less v1.4.0 by @chenjiahan in #5806
- chore(deps): update all patch dependencies by @renovate[bot] in #5810
- chore: integrate with
rsbuild-plugin-arethetypeswrongby @colinaaa in #5812 - test(e2e): fix flaky watching file cases by @chenjiahan in #5815
- release: 1.5.0-beta.0 by @chenjiahan in #5819
Full Changelog: v1.4.15...v1.5.0-beta.0
v1.4.15
What's Changed
New Features π
- feat(core): add
actionoption torsbuild.initConfigsby @colinaaa in #5753 - feat: add support for custom HMR client in environments by @chenjiahan in #5773
Bug Fixes π
- fix: appendRules helper not work in some cases by @chenjiahan in #5781
Refactor π¨
- refactor: extracting environment error creation by @chenjiahan in #5766
- refactor(server): move writeToDisk config resolution to middleware by @chenjiahan in #5769
- refactor: remove unnecessary async and update type definitions by @chenjiahan in #5777
Document π
- docs: add tool selection to build performance guide by @chenjiahan in #5765
- docs: add rslint to the list of Rstack tools by @chenjiahan in #5774
- docs: add version badges to Rstack tools table by @chenjiahan in #5776
Other Changes
- chore: remove unnecessary issues write permission from release workflow by @chenjiahan in #5756
- ci: remove ecosystem CI workflow trigger from release by @chenjiahan in #5757
- chore(deps): update dependency heading-case to v1 by @renovate[bot] in #5761
- chore(deps): update dependency core-js to ~3.45.0 by @renovate[bot] in #5760
- chore(deps): update @rslint/core to v0.1.4 by @chenjiahan in #5762
- chore(deps): update all patch dependencies by @renovate[bot] in #5759
- chore: update array type syntax to use parentheses consistently by @chenjiahan in #5763
- test: organize HMR e2e test cases by @chenjiahan in #5770
- test(e2e): uncomment and simplify some cases by @chenjiahan in #5771
- chore: ignore output directories in Rslint config by @chenjiahan in #5775
- chore(deps): update @rstest/core to v0.1.2 by @chenjiahan in #5780
- chore(deps): update module federation to v0.18.0 by @renovate[bot] in #5778
- chore(deps): update sass to ^1.90.0 by @renovate[bot] in #5779
- release: 1.4.15 by @chenjiahan in #5782
Full Changelog: v1.4.14...v1.4.15
v1.4.14
What's Changed
Trusted Publishing
All Rsbuild npm packages are now published based on npm's trusted publishing, making Rsbuild's npm packages more secure and transparent.
See:
- https://github.blog/changelog/2025-07-31-npm-trusted-publishing-with-oidc-is-generally-available/
- https://docs.npmjs.com/trusted-publishers
Other Changes
- chore(deps): update all patch dependencies by @renovate[bot] in #5750
- chore(workflow): enable npm trusted publishing by @chenjiahan in #5754
- release: 1.4.14 by @chenjiahan in #5755
Full Changelog: v1.4.13...v1.4.14
v1.4.13
What's Changed
New Features π
- feat(client): add periodic ping to WebSocket connection by @chenjiahan in #5724
- feat: add support for disabling live reload in environments by @chenjiahan in #5731
- feat(create-rsbuild): update typescript to ^5.9.2 by @chenjiahan in #5739
- feat(create-rsbuild): update tsconfig modules settings by @chenjiahan in #5744
- feat: add support for custom favicon output directory by @chenjiahan in #5746
Bug Fixes π
- fix(server): remove unused socket messages by @chenjiahan in #5740
- fix(runner): remove redundant module.instantiate calls by @chenjiahan in #5743
Refactor π¨
- refactor: socket message types by @chenjiahan in #5735
Document π
- docs: update Node version requirements for loading TS config by @chenjiahan in #5729
- docs: add
distPath.faviconoption by @chenjiahan in #5747 - docs: display llms copy buttons by @chenjiahan in #5748
Other Changes
- chore(deps): update dependency launch-editor-middleware to ^2.11.0 by @renovate[bot] in #5726
- chore(deps): update dependency webpack to ^5.101.0 by @renovate[bot] in #5727
- chore(deps): update dependency @rslint/core to ^0.1.0 by @renovate[bot] in #5725
- test: update Rstest to v0.1.0 and spy on console.log by @chenjiahan in #5730
- chore: reorganize global type declarations into namespace by @chenjiahan in #5732
- chore(deps): upgrade Rslint to v0.1.1 by @hardfist in #5733
- chore(deps): update dependency @types/node to ^22.17.0 by @renovate[bot] in #5736
- chore(deps): update dependency @shikijs/transformers to ^3.9.1 by @renovate[bot] in #5734
- test: add cleanup before each test run by @chenjiahan in #5741
- test(e2e): replace unused tsconfig files and package.json files by @chenjiahan in #5742
- chore(deps): update dependency preact to ^10.27.0 by @renovate[bot] in #5737
- chore(deps): update pnpm to v10.14.0 by @renovate[bot] in #5738
- test(e2e): remove webpack-only test by @chenjiahan in #5745
- release: 1.4.13 by @chenjiahan in #5749
Full Changelog: v1.4.12...v1.4.13
v1.4.12
What's Changed
New Features π
- feat(deps): update @rspack/core to v1.4.11 by @chenjiahan in #5721
Performance π
- perf: reduce getStatus cost when previewing static assets by @chenjiahan in #5681
- perf: lazy load the mrmine module by @chenjiahan in #5682
- perf: bundle rspack-chain into main JS bundle by @chenjiahan in #5684
- perf(deps): update rspack-chain to 1.3.0 by @chenjiahan in #5685
Bug Fixes π
- fix(plugin-less): pin less version to 4.3.0 by @chenjiahan in #5690
- fix: remove the deprecated
url.parsefrom historyApiFallback by @chenjiahan in #5696 - fix(cli): support
--environmentshorten option by @9aoy in #5719
Refactor π¨
- refactor: fork connect-history-api-fallback dependency by @chenjiahan in #5694
- refactor: fix unbound-method lint issues by @chenjiahan in #5713
Document π
- docs: update historyApiFallback documentation by @chenjiahan in #5712
Other Changes
- chore: add type module to package.json files across examples by @chenjiahan in #5693
- chore: fix type issues in rslib.config.ts by @chenjiahan in #5683
- chore(deps): update dependency svelte to ^5.37.0 by @renovate[bot] in #5687
- chore(deps): update all patch dependencies by @renovate[bot] in #5686
- release: @rsbuild/plugin-less v1.3.1 by @chenjiahan in #5691
- chore(deps): update dependency webpack to ^5.100.2 by @renovate[bot] in #5577
- test(e2e): fix flaky plugin hooks watch test by @chenjiahan in #5695
- chore(workflow): simplify biome rules by @chenjiahan in #5698
- chore(workflow): integrate Rslint for type-aware linting by @chenjiahan in #5699
- chore(workflow): run Rslint in CI by @chenjiahan in #5701
- chore: fix no-unnecessary-template-expression lint issues by @chenjiahan in #5702
- chore: write tsBuildInfo files to node_modules cache folder by @chenjiahan in #5704
- Revert "chore: write tsBuildInfo files to node_modules cache folder by @chenjiahan in #5705
- chore(deps): update Rspress to 2.0.0-beta.23 by @chenjiahan in #5706
- chore: fix return-await lint issues by @chenjiahan in #5703
- chore: fix no-confusing-void-expression lint issues by @chenjiahan in #5708
- chore: fix no-unnecessary-boolean-literal-compare lint issues by @chenjiahan in #5709
- chore: fix non-nullable-type-assertion-style lint issues by @chenjiahan in #5711
- release: 1.4.12 by @chenjiahan in #5722
Full Changelog: v1.4.11...v1.4.12
v1.4.11
What's Changed
New Features π
- feat: enable error tolerance for type re-exports by @chenjiahan in #5670
- feat: add
filename.wasmconfig by @chenjiahan in #5677
Performance π
- perf: use
endsWithinstead of regex by @chenjiahan in #5668 - perf: require rspack to improve startup performance by @chenjiahan in #5673
Bug Fixes π
- fix: watch options not work in build watch mode by @chenjiahan in #5674
Document π
Other Changes
- test: enable HMR test for Preact createContext by @chenjiahan in #5669
- chore: rename the rspack folder to rspack-plugins by @chenjiahan in #5672
- test: split Wasm test cases into subdirectories by @chenjiahan in #5676
- chore(deps): update dependency cross-env to v10 by @renovate[bot] in #5678
- chore: simplify scripts in package.json by @chenjiahan in #5679
- release: 1.4.11 by @chenjiahan in #5680
Full Changelog: v1.4.10...v1.4.11
v1.4.10
What's Changed
New Features π
- feat(plugin): apply property can be a function by @chenjiahan in #5653
- feat(types): export
Connecttype by @chenjiahan in #5663 - feat(deps): update @rspack/core to v1.4.10 by @chenjiahan in #5666
Bug Fixes π
- fix: patch is-wsl to maintaining Node 16.10 compatibility by @chenjiahan in #5656
Document π
- docs: add
enforceproperty to plugin API by @chenjiahan in #5649 - docs(plugin): update
applyproperty for its function signature by @chenjiahan in #5654 - docs: mention Rstest in CRA guide by @chenjiahan in #5664
Other Changes
- chore(deps): update Rspress to 2.0.0-beta.22 by @chenjiahan in #5650
- chore(deps): update dependency jiti to ^2.5.0 by @renovate[bot] in #5661
- chore(deps): update dependency @rslib/core to v0.11.0 - autoclosed by @renovate[bot] in #5660
- chore: add open collective funding link by @chenjiahan in #5662
- test: use the shared tsconfig by @chenjiahan in #5665
- release: 1.4.10 by @chenjiahan in #5667
Full Changelog: v1.4.9...v1.4.10
v1.4.9
What's Changed
New Features π
- feat(plugin): introduce
orderproperty for transform hook by @chenjiahan in #5640 - feat(plugin): support for the
enforceproperty by @chenjiahan in #5645 - feat(deps): update @rspack/core to v1.4.9 by @chenjiahan in #5646
Document π
- docs: enhance migration guide for resolved config by @chenjiahan in #5638
- docs: add example for migrating configEnvironment hook by @chenjiahan in #5641
- docs(deps): update @rstack-dev/doc-ui to 1.10.8 by @chenjiahan in #5642
- docs: add Rstest to callerName section by @chenjiahan in #5643
- docs: add type and scope information for env variables by @chenjiahan in #5644
Other Changes
- chore(deps): update dependency less to ^4.4.0 by @renovate[bot] in #5630
- release: @rsbuild/plugin-less 1.3.0 by @chenjiahan in #5636
- chore(deps): update all patch dependencies by @renovate[bot] in #5639
- chore(deps): update SWC plugins to v9 (major) by @renovate[bot] in #5635
- release: 1.4.9 by @chenjiahan in #5647
Full Changelog: v1.4.8...v1.4.9
v1.4.8
What's Changed
New Features π
- feat: allow plugin to specify
applyproperty by @chenjiahan in #5620 - feat: allow control of type safety for import.meta.env by @chenjiahan in #5627
Bug Fixes π
- fix(cli): increase arrow spacing by @thinkasany in #5607
- fix: wait until the last build is finished before calling
stats.toJsonby @9aoy in #5615 - fix: failed to call
getStatsbefore the first build is finished by @chenjiahan in #5622 - fix: adjust when lazy compilation can be applied by @chenjiahan in #5628
Refactor π¨
- refactor: simplify plugin environment handling by @chenjiahan in #5616
Document π
- docs: add example for migrating config hook by @chenjiahan in #5609
- docs: add example for migrating HTML hook by @chenjiahan in #5610
- docs: minor english adjustment by @slobo in #5612
- docs: add example for migrating configureServer hook by @chenjiahan in #5613
- docs: add section on defining Rsbuild plugins by @chenjiahan in #5614
- docs: middleware can be an async function by @chenjiahan in #5619
- docs: update plugin existence checks guide by @chenjiahan in #5623
- docs: enhance type declaration guidance for env variables by @chenjiahan in #5625
- docs: standardize terminology for environment variables by @chenjiahan in #5626
- docs: add introduction to conditional apply plugin by @chenjiahan in #5629
Other Changes
- chore: simplify workspace config by @thinkasany in #5606
- chore(plugin-vue): remove unused webpack dev deps by @thinkasany in #5608
- chore(deps): pin @biomejs/biome to v2.0.6 by @chenjiahan in #5611
- chore(deps): update dependency svelte-check to ^4.3.0 by @renovate[bot] in #5633
- chore(deps): update dependency react-router-dom to ^7.7.0 by @renovate[bot] in #5632
- chore(deps): update dependency nx to ^21.3.0 by @renovate[bot] in #5631
- release: 1.4.8 by @chenjiahan in #5634
New Contributors
Full Changelog: v1.4.7...v1.4.8
v1.4.7
What's Changed
New Features π
- feat(deps): update @rspack/core to 1.4.8 by @chenjiahan in #5603
- feat: add
metadatafield to tag object by @chenjiahan in #5586 - feat: validate output target in Rsbuild config by @chenjiahan in #5592
- feat: export
HtmlTagtype by @chenjiahan in #5585
Bug Fixes π
- fix(create-rsbuild): update ESLint config in React templates by @chenjiahan in #5583
- fix(types): type error when importing SVG file with React query by @GRAMMAC1 in #5587
Document π
- docs: update plugin API title by @chenjiahan in #5581
- docs: add section on vite-tsconfig-paths support by @chenjiahan in #5593
- docs: prefer to use the postcss plugin of unocss by @chenjiahan in #5594
- docs: update migration guides for plugins by @chenjiahan in #5598
Other Changes
- chore(cache): change cache enabled message to debug log by @chenjiahan in #5580
- chore(deps): update playwright monorepo to v1.54.1 by @renovate[bot] in #5584
- chore(types): add JSDoc for SVGR by @chenjiahan in #5588
- release: create-rsbuild v1.4.4 by @chenjiahan in #5589
- chore(deps): update all patch dependencies by @renovate[bot] in #5590
- chore(deps): update dependency svelte to ^5.36.0 by @renovate[bot] in #5597
- chore(deps): update dependency @shikijs/transformers to ^3.8.0 by @renovate[bot] in #5595
- chore(deps): update dependency open to ^10.2.0 by @renovate[bot] in #5596
- chore(deps): update module federation to v0.17.0 by @renovate[bot] in #5601
- chore(deps): update all patch dependencies by @renovate[bot] in #5600
- release: 1.4.7 by @chenjiahan in #5605
Full Changelog: v1.4.6...v1.4.7