Use Sass as the CSS preprocessor, implemented based on sass-loader.
You can install the plugin using the following command:
You can register the plugin in the rsbuild.config.ts
file:
After registering the plugin, you can import *.scss
, *.sass
, *.module.scss
or *.module.sass
files into the code without adding other configs.
If you need to customize the compilation behavior of Sass, you can use the following configs.
Modify the config of sass-loader.
Object | Function
If sassLoaderOptions
is an object, it is merged with the default config through Object.assign
. It should be noted that sassOptions
is merged through deepMerge in a deep way.
If sassLoaderOptions
is a function, the default config is passed as the first parameter, which can be directly modified or returned as the final result.
/\.s(?:a|c)ss$/
>= 1.1.0
Include some .scss
or .sass
files, they will be transformed by sass-loader
. The value is the same as the rule.test
option in Rspack.
For example:
undefined
Exclude some .sass
or .scss
files, they will not be transformed by sass-loader
.
For example:
Sass provides several implementations, including sass, sass-embedded, and node-sass.
Rsbuild uses the latest sass-embedded
implementation by default. sass-embedded
is a JavaScript wrapper around the native Dart Sass executable, providing a consistent API and optimal performance.
If you need to use a different Sass implementation instead of the built-in sass-embedded
included in Rsbuild, you can install the preferred Sass implementation in your project and specify it using the sass-loader
's implementation option.
Switching from sass-embedded
to another Sass implementation can significantly decrease build performance.
Rsbuild uses the latest modern-compiler
API by default. If you rely on the legacy
API of Sass, you can set the api
option of the sass-loader to legacy
to maintain compatibility with some deprecated Sass syntax.
Sass's legacy
API has been deprecated and will be removed in Sass 2.0. It is recommended to migrate to the modern-compiler
API. For more details, see Sass - Legacy JS API.
Sass uses warning logs to notify you of deprecated usages that will be removed in future major releases of Sass. It is recommended to make changes as suggested by the logs. If you do not want to see these logs, you can ignore these warnings by using the silenceDeprecations option in Sass.
For example, @import
has been deprecated in Sass. If you use this syntax, Sass will output the following prompt:
@rsbuild/plugin-sass
adds the following configuration by default to silence the @import
warning, if you need to silence other deprecated warnings, you can use the same method.
For more information, see Sass Deprecations.
By using the include
and exclude
options, you can register multiple Sass plugins and specify different options for each plugin.
For example: