type ToolsSwc =
| Rspack.SwcLoaderOptions
| ((config: Rspack.SwcLoaderOptions) => Rspack.SwcLoaderOptions | undefined);
const defaultOptions = {
jsc: {
externalHelpers: true,
parser: {
tsx: false,
syntax: 'typescript',
decorators: true,
},
},
experimental: {
cacheRoot: './node_modules/.cache/.swc',
keepImportAttributes: true,
},
isModule: 'unknown',
env: {
// Read the browserslist configuration of the project
targets: browserslist,
},
// ...some other conditional options
};
You can set the options of builtin:swc-loader through tools.swc
.
Refer to Configure SWC for more details.
tools.swc
can be configured as an object, this object will be deeply merged with the built-in builtin:swc-loader
option.
export default {
tools: {
swc: {
jsc: {
externalHelpers: false,
},
},
},
};
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:
export default {
tools: {
swc: (config) => {
config.jsc ||= {};
config.jsc.externalHelpers = false;
return config;
},
},
};
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.