使用 Sass 作为 CSS 预处理器,基于 sass-loader 实现。
你可以通过如下的命令安装插件:
你可以在 rsbuild.config.ts
文件中注册插件:
注册插件后,你可以在代码中引入 *.scss
,*.sass
,*.module.scss
或 *.module.sass
文件,无须添加其他配置。
如果你需要自定义 Sass 的编译行为,可以使用以下配置项。
修改 sass-loader 的配置。
Object | Function
当 sassLoaderOptions
的值是一个对象时,它会与默认配置通过 Object.assign
进行浅层合并,值得注意的是,sassOptions
会通过 deepMerge 进行深层合并。
当 sassLoaderOptions
的值是一个函数时,默认配置作为第一个参数传入,你可以直接修改配置对象,也可以返回一个值作为最终结果:
undefined
用于排除一部分 .sass
或 .scss
模块,这些模块不会被 sass-loader
编译。
比如:
Sass 提供了多种实现,包括 sass、sass-embedded 和 node-sass。
Rsbuild 默认使用最新的 sass-embedded
实现。sass-embedded
是一个围绕原生 Dart Sass 可执行文件的 JavaScript wrapper,具备一致的 API 和最佳的性能。
如果你需要使用其他 Sass 实现,而不是使用 Rsbuild 内置的 sass-embedded
,可以在项目中安装需要使用的 Sass 实现,并通过 sass-loader
的 implementation 选项来设置。
将 sass-embedded
修改为其他 Sass 实现,可能会构建性能显著下降。
Rsbuild 默认使用最新的 modern-compiler
API,如果你依赖了 Sass 的 legacy
API,可以将 sass-loader 的 api 选项设置为 legacy
,以兼容一些废弃的 Sass 写法。
Sass 的 legacy
API 已经被废弃,并且将在 Sass 2.0 中被移除,建议迁移到 modern-compiler
API,详见 Sass - Legacy JS API。