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: {
// 读取项目的 browserslist 配置
targets: browserslist,
},
// ...some other conditional options
};
通过 tools.swc
可以设置 builtin:swc-loader 的选项。
参考 配置 SWC 了解更多。
tools.swc
可以配置为一个对象,这个对象将会和内置的 builtin:swc-loader
选项进行深层合并。
export default {
tools: {
swc: {
jsc: {
externalHelpers: false,
},
},
},
};
tools.swc
也可以配置为一个函数,这个函数接收一个参数,即内置的 builtin:swc-loader
选项,你可以对这个对象进行修改,然后返回一份新的配置。比如:
export default {
tools: {
swc: (config) => {
config.jsc ||= {};
config.jsc.externalHelpers = false;
return config;
},
},
};
tools.swc
函数返回的对象会直接作为最终使用的 builtin:swc-loader
选项,不会再与内置的 builtin:swc-loader
选项进行合并。