NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4399 most downloaded on npm
Node binding for rspack
Last release 6 days ago
28 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
1125 releases · first in 2022
One column per quarter.
fix(webpack-test): remove deprecated array ["jam", "main"] from mainFields by @Boshen in https://github.com/web-infra-dev/rspack/pull/3334
<p> <img src="https://camo.githubusercontent.com/0031034bed5d18377d57e2373390fba81f40f5e341a281188ed36d9c086aa2b9/68747470733a2f2f6c66332d7374617469632e62797465646e73646f632e636f6d2f6f626a2f6564656e2d636e2f7a712d75796c6b76542f6c6a68775a74686c61756b6a6c6b756c7a6c702f52737061636b2d313835302e706e67"/> </p>
Read the announcement blog post: Announcing Rspack 0.2.
Official vue-loader support 🎉
And also
<!-- Release notes generated using configuration in .github/release.yml at 0.2.0 -->
depended_modules function in code splitter by @Boshen in https://github.com/web-infra-dev/rspack/pull/2294clone while matching import.meta.webpackHot by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2857ReactRefreshUsageFinder by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2875ImportMetaPlugin of Webpack by @underfin in https://github.com/web-infra-dev/rspack/pull/2684builtins.html should inject <script src="xxxx.js" /> in <head /> by @suxin2017 in https://github.com/web-infra-dev/rspack/pull/2770loader-runner for preparing to support vue-loader and pitching loader by @h-a-n-a in https://github.com/web-infra-dev/rspack/pull/2789import(/* webpackChunkName: "/dist/d/js_d" */ "./d") by @suxin2017 in https://github.com/web-infra-dev/rspack/pull/2812experiments.outputModule by @underfin in https://github.com/web-infra-dev/rspack/pull/2803npx rspack preview by @faga295 in https://github.com/web-infra-dev/rspack/pull/2434BannerPlugin by @9aoy in https://github.com/web-infra-dev/rspack/pull/2819optimizeModules hook by @nieyuyao in https://github.com/web-infra-dev/rspack/pull/2758Rule.enforce by @h-a-n-a in https://github.com/web-infra-dev/rspack/pull/2862externals by @underfin in https://github.com/web-infra-dev/rspack/pull/2866LoaderDefinition by @Asuka109 in https://github.com/web-infra-dev/rspack/pull/2908noEmitAssets: true by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2907splitChunks.minSize by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2954x clean command by @Boshen in https://github.com/web-infra-dev/rspack/pull/2980reuseExistingChunk by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3000splitChunks.{cacheGroup}.minSize by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3015splitChunks.name by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2955false to splitChunks.name and splitChunks.{cacheGroup}.name by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3029optimization.removeEmptyChunks config by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/3076Chunk#id_name_hints and generate more stable chunk id by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3043splitChunks.{cacheGroup}.enforce by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3086Rule.loader and Rule.options by @h-a-n-a in https://github.com/web-infra-dev/rspack/pull/3246SplitChunksPlugin by default by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3295module.exports to prevent unexpected/potential TDZ error by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2714name_for_condition in BoxModule by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2778import( /* webpackChunkName: "/user/[id]/page" */ './foo') containing [id] by @GiveMe-A-Name in https://github.com/web-infra-dev/rspack/pull/2835.d.ts from the default resolve.extensions by @lippzhang in https://github.com/web-infra-dev/rspack/pull/2861newSplitChunks in schema.js by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2934is_founded in ReactRefreshUsage by @underfin in https://github.com/web-infra-dev/rspack/pull/2939noEmitAssets by @faga295 in https://github.com/web-infra-dev/rspack/pull/2942./xxx/xx.js) failed by @hardfist in https://github.com/web-infra-dev/rspack/pull/3014reuseExistingChunk if name is specified for CacheGroup by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3045source could be unavailable if asset was deleted by @h-a-n-a in https://github.com/web-infra-dev/rspack/pull/3250Rule.options and Rule.loader by @h-a-n-a in https://github.com/web-infra-dev/rspack/pull/3296["jam", "main"] from mainFields by @Boshen in https://github.com/web-infra-dev/rspack/pull/3334unwrap_or_else by @tuchg in https://github.com/web-infra-dev/rspack/pull/2167test.config.js by @tuchg in https://github.com/web-infra-dev/rspack/pull/2234__filename polyfill by @bvanjoi in https://github.com/web-infra-dev/rspack/pull/2342new URL("./foo", import.meta.url) by @magic-akari in https://github.com/web-infra-dev/rspack/pull/2340Callback by @bvanjoi in https://github.com/web-infra-dev/rspack/pull/2494util for compiler.webpack by @IWANABETHATGUY in https://github.com/web-infra-dev/rspack/pull/2548target: 'node' by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/2535rspack build --json stats.json by @hardfist in https://github.com/web-infra-dev/rspack/pull/2557MAX_MODULES_PER_CHUNK and add MAX_SIZE_PER_CHUNK condition by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2578builtins.html by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/2589React.createContext is not considered as React component by @underfin in https://github.com/web-infra-dev/rspack/pull/2587devFriendlySplitChunks: true by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2651import(/* webpackChunkName: "d" */ "./d") by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2686zx in setup script by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2756zx to replace xtask by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2840crates/rspack_plugin_javascript/src/visitors/dependency/util.rs by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2865starts_with with the same semantics by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2872check_changeset.cjs ESM and use ZX by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2878check_changeset.js by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2880make-threejs10x.js script by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2887optimize_chunks hook by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2958prepare_module_group_map by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2975ChunkGraph into different files by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3031test/configCases/split-chunks-common of Webpack by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3018RspackRegex by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3040cargo-machete by @Boshen in https://github.com/web-infra-dev/rspack/pull/3106Module for Box<dyn Module> in codebase by @sladyn98 in https://github.com/web-infra-dev/rspack/pull/2831webpack to 5.76.0 by @GarrisonD in https://github.com/web-infra-dev/rspack/pull/3156x ready command for running everything by @Boshen in https://github.com/web-infra-dev/rspack/pull/3230test option from reusable-build by @Boshen in https://github.com/web-infra-dev/rspack/pull/3245Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.0...0.2.0
…in 0.1.12 to align with webpack, which may be a breaking change for applications using [ext] in output.filename. see https://github.com/web-infra-dev/…
In the previous release, Rspack incorrectly supported [ext] in output.filename, we are removing [ext] support in output.filename in 0.1.12 to align with webpack, which may be a breaking change for applications using [ext] in output.filename. see https://github.com/web-infra-dev/rspack/issues/3270#issuecomment-1559697465 for migration guide from previous release.
resolve.exportsFieldsSupport set exportsFields in package.json that are used for resolving module requests
module.exports = {
//...
resolve: {
exportsFields: ['source', '...'],
},
};
you can use fork-ts-checker-webpack-plugin directly in rspack to typecheck your codebase.
import a from 'data:text/javascript,export default "a";';
expect(a).toBe("a");
<!-- Release notes generated using configuration in .github/release.yml at v0.1.12 -->
Rule.loader and Rule.options by @h-a-n-a in https://github.com/web-infra-dev/rspack/pull/3246source could be unavailable if asset was deleted by @h-a-n-a in https://github.com/web-infra-dev/rspack/pull/3250x ready command for running everything by @Boshen in https://github.com/web-infra-dev/rspack/pull/3230test option from reusable-build by @Boshen in https://github.com/web-infra-dev/rspack/pull/3245Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.11...v0.1.12
<!-- Release notes generated using configuration in .github/release.yml at v0.1.11 -->
<!-- Release notes generated using configuration in .github/release.yml at v0.1.11 -->
Externals supports Arraymodule.exports = {
//...
externals: {
subtract: ['./math', 'subtract'],
},
};
subtract: ['./math', 'subtract'] allows you select part of a module, where ./math is the module and your bundle only requires the subset under the subtract variable.
optimization.removeEmptyChunksTells Rspack to detect and remove chunks which are empty. Setting optimization.removeEmptyChunks to false will disable this optimization.
splitChunks.{cacheGroup}.enforceoptimization.removeEmptyChunks config by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/3076Chunk#id_name_hints and generate more stable chunk id by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3043splitChunks.{cacheGroup}.enforce by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3086cargo-machete by @Boshen in https://github.com/web-infra-dev/rspack/pull/3106Module for Box<dyn Module> in codebase by @sladyn98 in https://github.com/web-infra-dev/rspack/pull/2831webpack to 5.76.0 by @GarrisonD in https://github.com/web-infra-dev/rspack/pull/3156Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.10...v0.1.11
<!-- Release notes generated using configuration in .github/release.yml at v0.1.10 -->
<!-- Release notes generated using configuration in .github/release.yml at v0.1.10 -->
You could extract the license using the configuration below:
module.exports = {
// ... snip
builtins: {
minifyOptions: {
extractComments: true // by default, rspack will use regex `@preserve|@lic|@cc_on|^\**!`
}
}
}
or Using Regexp:
module.exports = {
// ... snip
builtins: {
minifyOptions: {
extractComments: /@license/
}
}
}
For more details you could refer https://webpack.js.org/api/loaders/#inline-matchresource
By default, when you use the contenthash option in your output filename, Rspack will generate a hash based on the module's dependencies and other factors that can change even if the module's content has not changed. This means that the bundle will be invalidated and rebuilt even if the module's content has not changed.
However, by enabling the optimization.realContentHash option, Rspack will generate a hash based only on the actual content of the module. This ensures that the bundle is invalidated and rebuilt only when the module's content has actually changed.
For more details you could refer to optimization.realContentHash
splitChunks.minSize by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2954x clean command by @Boshen in https://github.com/web-infra-dev/rspack/pull/2980reuseExistingChunk by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3000splitChunks.{cacheGroup}.minSize by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3015splitChunks.name by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2955false to splitChunks.name and splitChunks.{cacheGroup}.name by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3029newSplitChunks in schema.js by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2934is_founded in ReactRefreshUsage by @underfin in https://github.com/web-infra-dev/rspack/pull/2939noEmitAssets by @faga295 in https://github.com/web-infra-dev/rspack/pull/2942./xxx/xx.js) failed by @hardfist in https://github.com/web-infra-dev/rspack/pull/3014reuseExistingChunk if name is specified for CacheGroup by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3045optimize_chunks hook by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2958prepare_module_group_map by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2975ChunkGraph into different files by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3031test/configCases/split-chunks-common of Webpack by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3018RspackRegex by @hyf0 in https://github.com/web-infra-dev/rspack/pull/3040Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.9...v0.1.10
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
style-loader + css-loader is now supported experimentally.
module.exports = {
module: {
rules: [
{
test: /\.css$/,
use: [
{
loader: "style-loader",
options: {
esModule: false, // only `esModule: false` is supported right now.
},
},
"css-loader",
],
type: "javascript/auto",
},
],
},
};
thread-loader(requires pitching loader) and eslint-loader (can be used with enforce: 'pre') are also supported.
For more loader-compat examples, please visit example-loader-compat.
// Prefixing with ! will disable all configured normal loaders
require("!postcss-loader!less-loader!./style.less")
// Prefixing with !! will disable all configured loaders (preLoaders, loaders, postLoaders)
require("!!postcss-loader!less-loader!./style.less")
// Prefixing with -! will disable all configured preLoaders and loaders but not postLoaders
require("-!postcss-loader!less-loader!./style.less")
module.exports = function() {}
module.exports.pitch = function (remainingRequest, previousRequest, data) {
if (someCondition) {
return `require("!!${remainingRequest}")`
}
};
clone while matching import.meta.webpackHot by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2857ReactRefreshUsageFinder by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2875loader-runner for preparing to support vue-loader and pitching loader by @h-a-n-a in https://github.com/web-infra-dev/rspack/pull/2789import(/* webpackChunkName: "/dist/d/js_d" */ "./d") by @suxin2017 in https://github.com/web-infra-dev/rspack/pull/2812experiments.outputModule by @underfin in https://github.com/web-infra-dev/rspack/pull/2803npx rspack preview by @faga295 in https://github.com/web-infra-dev/rspack/pull/2434BannerPlugin by @9aoy in https://github.com/web-infra-dev/rspack/pull/2819optimizeModules hook by @nieyuyao in https://github.com/web-infra-dev/rspack/pull/2758Rule.enforce by @h-a-n-a in https://github.com/web-infra-dev/rspack/pull/2862externals by @underfin in https://github.com/web-infra-dev/rspack/pull/2866LoaderDefinition by @Asuka109 in https://github.com/web-infra-dev/rspack/pull/2908noEmitAssets: true by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2907import( /* webpackChunkName: "/user/[id]/page" */ './foo') containing [id] by @GiveMe-A-Name in https://github.com/web-infra-dev/rspack/pull/2835.d.ts from the default resolve.extensions by @lippzhang in https://github.com/web-infra-dev/rspack/pull/2861zx to replace xtask by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2840crates/rspack_plugin_javascript/src/visitors/dependency/util.rs by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2865starts_with with the same semantics by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2872check_changeset.cjs ESM and use ZX by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2878check_changeset.js by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2880make-threejs10x.js script by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2887Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.8...v0.1.9
<!-- Release notes generated using configuration in .github/release.yml at v0.1.8 -->
<!-- Release notes generated using configuration in .github/release.yml at v0.1.8 -->
npm i -D @rspack/cli@nightlydepended_modules function in code splitter by @Boshen in https://github.com/web-infra-dev/rspack/pull/2294ImportMetaPlugin of Webpack by @underfin in https://github.com/web-infra-dev/rspack/pull/2684builtins.html should inject <script src="xxxx.js" /> in <head /> by @suxin2017 in https://github.com/web-infra-dev/rspack/pull/2770module.exports to prevent unexpected/potential TDZ error by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2714name_for_condition in BoxModule by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2778zx in setup script by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2756Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.7...v0.1.8
There are some enhancements/fixes
There are some enhancements/fixes
output.clean by @suxin2017 in https://github.com/web-infra-dev/rspack/pull/2659.output.chunkLoadingGlobal by @9aoy in https://github.com/web-infra-dev/rspack/pull/2679.import(/* webpackChunkName: "d" */ "./d") by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2686builtins.html by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/2589React.createContext is not considered as React component by @underfin in https://github.com/web-infra-dev/rspack/pull/2587devFriendlySplitChunks: true by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2651Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.6...v0.1.7
feat(rspack_plugin_dev_friendly_split_chunks): reduce MAX_MODULES_PER_CHUNK and add MAX_SIZE_PER_CHUNK condition by @hyf0 in https://github.com/web-in
MAX_MODULES_PER_CHUNK and add MAX_SIZE_PER_CHUNK condition by @hyf0 in https://github.com/web-infra-dev/rspack/pull/2578Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.5...v0.1.6
fix(rspack_testing): document on how to run the Rust core by @Boshen in https://github.com/web-infra-dev/rspack/pull/2547
util for compiler.webpack by @IWANABETHATGUY in https://github.com/web-infra-dev/rspack/pull/2548target: 'node' by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/2535rspack build --json stats.json by @hardfist in https://github.com/web-infra-dev/rspack/pull/2557Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.4...v0.1.5
fix: duplicate __webpack_require__.a in async module by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/2505
Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.3...v0.1.4
feat: stats for timings and builtAt by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/2425
new URL("./foo", import.meta.url) by @magic-akari in https://github.com/web-infra-dev/rspack/pull/2340Callback by @bvanjoi in https://github.com/web-infra-dev/rspack/pull/2494Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.2...v0.1.3
refactor module graph lookups by @Boshen in https://github.com/web-infra-dev/rspack/pull/2279
__filename polyfill by @bvanjoi in https://github.com/web-infra-dev/rspack/pull/2342Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.1...v0.1.2
fix: commonjs loading with extra output dir by @underfin in https://github.com/web-infra-dev/rspack/pull/2092
unwrap_or_else by @tuchg in https://github.com/web-infra-dev/rspack/pull/2167test.config.js by @tuchg in https://github.com/web-infra-dev/rspack/pull/2234Full Changelog: https://github.com/web-infra-dev/rspack/compare/v0.1.0...v0.1.1
Today we are so thrilled to announce that Rspack is officially released! Rspack is a Rust-based JavaScript bundler developed by the ByteDance Web Infr
Today we are so thrilled to announce that Rspack is officially released! Rspack is a Rust-based JavaScript bundler developed by the ByteDance Web Infra team that has features including high-performance, webpack interoperability, flexible configuration etc. Rspack has solved many problems in our scenarios and improved the developer experience for JavaScript engineers.
On top of that, we would also like to express our sincere gratitude to all the amazing contributors who participated in the internal testing and provided valuable feedback to help shape Rspack into the robust and efficient tool it is today. Your support and dedication have been instrumental in making Rspack a reality, and we could not have done it without you. Thank you for being a part of this exciting journey with us, and we look forward to continuing to work together to make Rspack even better in the future.
For more detailed information, please turn to our blog Announcing Rspack.
<p> <img src="https://camo.githubusercontent.com/0031034bed5d18377d57e2373390fba81f40f5e341a281188ed36d9c086aa2b9/68747470733a2f2f6c66332d7374617469632e62797465646e73646f632e636f6d2f6f626a2f6564656e2d636e2f7a712d75796c6b76542f6c6a68775a74686c61756b6a6c6b756c7a6c702f52737061636b2d313835302e706e67" width="400"/> </p>
Full Changelog: https://github.com/web-infra-dev/rspack/commits/v0.1.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →