Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/core/src/configChain.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
8 changes: 4 additions & 4 deletions packages/core/src/plugins/swc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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);
}
}
Expand All @@ -195,7 +195,7 @@ export const pluginSwc = (): RsbuildPlugin => ({
delete mergedConfig.env;
}

transformRule
mainRule
.use(CHAIN_ID.USE.SWC)
.loader(builtinSwcLoaderName)
.options(mergedConfig);
Expand Down
2 changes: 1 addition & 1 deletion packages/plugin-babel/src/helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
6 changes: 2 additions & 4 deletions packages/plugin-babel/src/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
6 changes: 2 additions & 4 deletions packages/plugin-svelte/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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$/);
Expand Down
7 changes: 4 additions & 3 deletions packages/plugin-svgr/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
4 changes: 2 additions & 2 deletions website/docs/en/guide/upgrade/v1-to-v2.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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');
},
Expand Down
4 changes: 2 additions & 2 deletions website/docs/zh/guide/upgrade/v1-to-v2.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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` 上配置:
Expand All @@ -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');
},
Expand Down
Loading