diff --git a/packages/core/src/configChain.ts b/packages/core/src/configChain.ts index 4fa5008933..c96c404a1f 100644 --- a/packages/core/src/configChain.ts +++ b/packages/core/src/configChain.ts @@ -85,7 +85,7 @@ export const CHAIN_ID = { }, /** Predefined rule groups */ ONE_OF: { - JS_TRANSFORM: 'js-transform', + JS_MAIN: 'js-main', JS_RAW: 'js-raw', SVG: 'svg', SVG_RAW: 'svg-asset-raw', diff --git a/packages/core/src/plugins/swc.ts b/packages/core/src/plugins/swc.ts index f907c28423..3a71fdc77c 100644 --- a/packages/core/src/plugins/swc.ts +++ b/packages/core/src/plugins/swc.ts @@ -132,8 +132,8 @@ export const pluginSwc = (): RsbuildPlugin => ({ .type('asset/source'); // Transform TypeScript/JSX/ESNext code - const transformRule = rule - .oneOf(CHAIN_ID.ONE_OF.JS_TRANSFORM) + const mainRule = rule + .oneOf(CHAIN_ID.ONE_OF.JS_MAIN) .type('javascript/auto'); const dataUriRule = chain.module @@ -172,7 +172,7 @@ export const pluginSwc = (): RsbuildPlugin => ({ api.context.rootPath, ); if (coreJsDir) { - for (const item of [transformRule, dataUriRule]) { + for (const item of [mainRule, dataUriRule]) { item.resolve.alias.set('core-js', coreJsDir); } } @@ -195,7 +195,7 @@ export const pluginSwc = (): RsbuildPlugin => ({ delete mergedConfig.env; } - transformRule + mainRule .use(CHAIN_ID.USE.SWC) .loader(builtinSwcLoaderName) .options(mergedConfig); diff --git a/packages/plugin-babel/src/helper.ts b/packages/plugin-babel/src/helper.ts index be94859d5d..5dff213941 100644 --- a/packages/plugin-babel/src/helper.ts +++ b/packages/plugin-babel/src/helper.ts @@ -192,7 +192,7 @@ export const modifyBabelLoaderOptions = ({ const rules = [ chain.module.rules .get(CHAIN_ID.RULE.JS) - .oneOfs.get(CHAIN_ID.ONE_OF.JS_TRANSFORM), + .oneOfs.get(CHAIN_ID.ONE_OF.JS_MAIN), chain.module.rules.get(CHAIN_ID.RULE.JS_DATA_URI), chain.module.rules.get(BABEL_JS_RULE), ].filter(Boolean); diff --git a/packages/plugin-babel/src/plugin.ts b/packages/plugin-babel/src/plugin.ts index c309a400f9..7a150dcd3b 100644 --- a/packages/plugin-babel/src/plugin.ts +++ b/packages/plugin-babel/src/plugin.ts @@ -163,10 +163,8 @@ export const pluginBabel = ( } else { // already set source.include / exclude in plugin-swc const jsRule = chain.module.rule(CHAIN_ID.RULE.JS).test(SCRIPT_REGEX); - const jsTransformRule = jsRule.oneOfs.get( - CHAIN_ID.ONE_OF.JS_TRANSFORM, - ); - jsTransformRule + const jsMainRule = jsRule.oneOfs.get(CHAIN_ID.ONE_OF.JS_MAIN); + jsMainRule .use(CHAIN_ID.USE.BABEL) .after(CHAIN_ID.USE.SWC) .loader(babelLoader) diff --git a/packages/plugin-svelte/src/index.ts b/packages/plugin-svelte/src/index.ts index 86759265ff..ad46bfe986 100644 --- a/packages/plugin-svelte/src/index.ts +++ b/packages/plugin-svelte/src/index.ts @@ -126,10 +126,8 @@ export function pluginSvelte(options: PluginSvelteOptions = {}): RsbuildPlugin { }; const jsRule = chain.module.rules.get(CHAIN_ID.RULE.JS); - const jsTransformRule = jsRule.oneOfs.get( - CHAIN_ID.ONE_OF.JS_TRANSFORM, - ); - const swcUse = jsTransformRule.uses.get(CHAIN_ID.USE.SWC); + const jsMainRule = jsRule.oneOfs.get(CHAIN_ID.ONE_OF.JS_MAIN); + const swcUse = jsMainRule.uses.get(CHAIN_ID.USE.SWC); const svelteRule = chain.module .rule(CHAIN_ID.RULE.SVELTE) .test(/\.svelte$/); diff --git a/packages/plugin-svgr/src/index.ts b/packages/plugin-svgr/src/index.ts index 05012e1310..88c4c3aed0 100644 --- a/packages/plugin-svgr/src/index.ts +++ b/packages/plugin-svgr/src/index.ts @@ -267,11 +267,12 @@ export const pluginSvgr = (options: PluginSvgrOptions = {}): RsbuildPlugin => ({ .set('generator', generatorOptions); // apply current JS transform rule to SVGR rules - const jsRule = chain.module.rules.get(CHAIN_ID.RULE.JS); - const jsTransformRule = jsRule.oneOfs.get(CHAIN_ID.ONE_OF.JS_TRANSFORM); + const jsRule = chain.module.rules + .get(CHAIN_ID.RULE.JS) + .oneOfs.get(CHAIN_ID.ONE_OF.JS_MAIN); [CHAIN_ID.USE.SWC, CHAIN_ID.USE.BABEL].some((jsUseId) => { - const use = jsTransformRule.uses.get(jsUseId); + const use = jsRule.uses.get(jsUseId); if (!use) { return false; diff --git a/website/docs/en/guide/upgrade/v1-to-v2.mdx b/website/docs/en/guide/upgrade/v1-to-v2.mdx index 453a911c42..712b9650c8 100644 --- a/website/docs/en/guide/upgrade/v1-to-v2.mdx +++ b/website/docs/en/guide/upgrade/v1-to-v2.mdx @@ -240,7 +240,7 @@ The built-in JS and CSS transform rules now use [oneOf](https://rspack.rs/config The built-in JS rule is now split into two `oneOf` branches: -- `CHAIN_ID.ONE_OF.JS_TRANSFORM`: for SWC transforms +- `CHAIN_ID.ONE_OF.JS_MAIN`: for SWC transforms - `CHAIN_ID.ONE_OF.JS_RAW`: for `?raw` imports If you previously added loaders on `CHAIN_ID.RULE.JS`, move them to the corresponding `oneOf` branch: @@ -253,7 +253,7 @@ export default { - jsRule.use('my-loader').loader('my-loader'); + jsRule -+ .oneOf(CHAIN_ID.ONE_OF.JS_TRANSFORM) ++ .oneOf(CHAIN_ID.ONE_OF.JS_MAIN) + .use('my-loader') + .loader('my-loader'); }, diff --git a/website/docs/zh/guide/upgrade/v1-to-v2.mdx b/website/docs/zh/guide/upgrade/v1-to-v2.mdx index a22296f5b9..7275b962ff 100644 --- a/website/docs/zh/guide/upgrade/v1-to-v2.mdx +++ b/website/docs/zh/guide/upgrade/v1-to-v2.mdx @@ -240,7 +240,7 @@ Rsbuild 内置的 JS 和 CSS 转换规则现在使用了 [oneOf](https://rspack. 内置 JS 规则现在拆分为两个 `oneOf` 分支: -- `CHAIN_ID.ONE_OF.JS_TRANSFORM`:用于 SWC 转换 +- `CHAIN_ID.ONE_OF.JS_MAIN`:用于 SWC 转换 - `CHAIN_ID.ONE_OF.JS_RAW`:用于处理 `?raw` 导入 如果你之前在 `CHAIN_ID.RULE.JS` 上添加 loader,现在需要改为在对应的 `oneOf` 上配置: @@ -253,7 +253,7 @@ export default { - jsRule.use('my-loader').loader('my-loader'); + jsRule -+ .oneOf(CHAIN_ID.ONE_OF.JS_TRANSFORM) ++ .oneOf(CHAIN_ID.ONE_OF.JS_MAIN) + .use('my-loader') + .loader('my-loader'); },