Object | Function
>= 0.4.11
You can set the options of builtin:swc-loader through tools.swc
.
Rsbuild uses builtin:swc-loader
by default to transform JavaScript code. It is the Rust version of swc-loader, and its options align with the JS version of swc-loader.
tools.swc
can be configured as an object, this object will be deeply merged with the built-in builtin:swc-loader
option.
tools.swc
can also be configured as a function, this function takes one argument, which is the built-in builtin:swc-loader
option. You can modify this object then return a new config. For example:
The object returned by the tools.swc
function will be used directly as the final builtin:swc-loader
option, and will not be merged with the built-in builtin:swc-loader
option anymore.
tools.swc
can be used to register SWC's Wasm plugins, for example, registering @swc/plugin-styled-jsx
:
Please note that SWC's wasm plugins are currently not backward compatible, and there is a certain binding relationship between the SWC plugin and the version of @swc/core
that Rspack depends on. Therefore, you must select the SWC plugin that matches the current version of @swc/core
for SWC to work.
For more information, refer to SWC - Selecting the version.
Example of enabling the Emotion support using the builtin:swc-loader
:
For more options, please refer to @swc/plugin-emotion.
Example of enabling the Relay support using the builtin:swc-loader
:
For more options, please refer to Rspack - rspackExperiments.relay.