For custom CSS Modules configuration.
The CSS Modules feature of Rsbuild is based on the modules
option of css-loader. You can refer to css-loader - modules to learn more.
The auto
configuration option allows CSS Modules to be automatically enabled based on their filenames.
true
Type description:
true
: enable CSS Modules for all files matching /\.module\.\w+$/i.test(filename)
regexp.false
: disable CSS Modules.RegExp
: enable CSS Modules for all files matching /RegExp/i.test(filename)
regexp.function
: enable CSS Modules for files based on the filename satisfying your filter function check.Style of exported class names.
'camelCase'
Type description:
asIs
Class names will be exported as is.camelCase
Class names will be camelized, the original class name will not to be removed from the locals.camelCaseOnly
Class names will be camelized, the original class name will be removed from the locals.dashes
Only dashes in class names will be camelized.dashesOnly
Dashes in class names will be camelized, the original class name will be removed from the locals.string
Sets the format of the class names generated by CSS Modules after compilation.
localIdentName
has different default values in development and production.
In a production, Rsbuild will generate shorter class names to reduce the bundle size.
You can use the following template strings in localIdentName
:
[name]
- the basename of the asset.[local]
- original class.[hash]
- the hash of the string.[folder]
- the folder relative path.[path]
- the relative path.[file]
- filename and path.[ext]
- extension with leading dot.[hash:<hashDigest>:<hashDigestLength>]
: hash with hash settings.Set localIdentName
to other value:
boolean
false
Allows exporting names from global class names, so you can use them via import.
Set the exportGlobals
to true
:
Use :global()
in CSS Modules:
Then you can import the class name wrapped with :global()
: