Rsbuild optimizes build performance by default, but you may encounter performance issues as your project grows larger.
This document provides optional optimization methods to improve build performance.
Performance profiling helps identify bottlenecks in your project, enabling targeted optimization.
Please refer to the Build Performance Analysis section.
These general optimization methods can speed up both development and production builds.
Upgrading to the latest version of Rsbuild provides the latest performance optimizations. See Upgrade Rsbuild for more details.
Rsbuild provides performance.buildCache configuration to significantly improve rebuild speed.
Optimizing the number of modules referenced by the application reduces bundle size and improves build performance. Read the Bundle Size Optimization section to learn optimization methods.
When using Tailwind CSS v3, incorrectly configuring the content
field in tailwind.config.js
can lead to poor build and HMR performance.
Refer to Tailwind CSS v3 - Optimize build performance for more details.
If your project uses the @rsbuild/plugin-less plugin with a large number of Less files, you can try enabling parallel compilation to improve build performance.
Refer to Less Plugin - parallel for more details.
While Rsbuild delivers excellent build performance out of the box, certain JavaScript-based tools can negatively impact performance, particularly in large projects.
These methods improve performance in development mode.
Enabling lazy compilation can significantly reduce the number of modules compiled at dev startup and improve startup time.
Refer to dev.lazyCompilation for more information.
Enabling Rspack's native watcher can improve HMR performance in development mode.
To provide a good debugging experience, Rsbuild uses the cheap-module-source-map
format in development mode by default. This is a high-quality source map format with some performance overhead.
You can improve build speed by adjusting the source map format through output.sourceMap.
For example, to disable source maps:
Or set the source map format to the fastest eval
format in development mode:
For detailed differences between different source map formats, see Rspack - devtool.
This strategy is similar to "Adjust Browserslist". The difference is that we can set different browserslist configurations for development and production, thereby reducing compilation overhead in development.
For example, you can add the following config to .browserslistrc
to target only the latest browsers in development while supporting a broader range in production:
Note that this can lead to differences in build output between development and production modes.