From 5e2cd3cb386dfb4b09ab516e36035dab29c26387 Mon Sep 17 00:00:00 2001 From: kongjiacong Date: Tue, 24 Jun 2025 14:09:01 +0800 Subject: [PATCH 1/6] feat: support resolve alias --- .../cli/uni-builder/src/shared/parseCommonConfig.ts | 10 ++++++++++ packages/cli/uni-builder/src/types.ts | 1 + packages/runtime/plugin-garfish/src/cli/index.ts | 2 +- packages/runtime/plugin-router-v5/src/cli/index.ts | 2 +- packages/runtime/plugin-router-v7/src/cli/index.ts | 2 +- packages/runtime/plugin-runtime/src/cli/alias.ts | 2 +- packages/runtime/plugin-runtime/src/cli/index.ts | 2 +- packages/runtime/plugin-runtime/src/cli/ssr/index.ts | 2 +- packages/runtime/plugin-state/src/cli/index.ts | 2 +- .../runtime/plugin-testing/src/base/config/index.ts | 3 +++ packages/runtime/plugin-testing/src/cli/index.ts | 2 +- packages/server/plugin-express/src/cli/index.ts | 2 +- packages/server/plugin-koa/src/cli/index.ts | 2 +- .../builder/generator/createBuilderProviderConfig.ts | 3 +++ packages/solutions/app-tools/src/commands/build.ts | 5 ++++- packages/solutions/app-tools/src/commands/dev.ts | 5 ++++- packages/solutions/app-tools/src/config/default.ts | 5 +++++ .../solutions/app-tools/src/config/legacy/index.ts | 1 + packages/solutions/app-tools/src/types/config/index.ts | 2 ++ .../solutions/app-tools/src/types/config/resolve.ts | 3 +++ tests/integration/alias-set/modern.config.ts | 9 ++++++++- tests/integration/alias-set/src/App.tsx | 1 + tests/integration/alias-set/src/alias/index.ts | 1 + 23 files changed, 56 insertions(+), 13 deletions(-) create mode 100644 packages/solutions/app-tools/src/types/config/resolve.ts create mode 100644 tests/integration/alias-set/src/alias/index.ts diff --git a/packages/cli/uni-builder/src/shared/parseCommonConfig.ts b/packages/cli/uni-builder/src/shared/parseCommonConfig.ts index 26068fc80603..2add62d7b7a9 100644 --- a/packages/cli/uni-builder/src/shared/parseCommonConfig.ts +++ b/packages/cli/uni-builder/src/shared/parseCommonConfig.ts @@ -136,6 +136,7 @@ export async function parseCommonConfig( ...toolsConfig } = {}, environments = {}, + resolve = {}, } = uniBuilderConfig; const rsbuildConfig: RsbuildConfig = { @@ -146,6 +147,7 @@ export async function parseCommonConfig( sourceMap, ...outputConfig, }, + resolve, source: { alias: alias as unknown as SourceConfig['alias'], ...sourceConfig, @@ -157,6 +159,14 @@ export async function parseCommonConfig( environments, }; + /** + * 在老版本中,默认 source.alias 为空对象。Rsbuild 新版本推荐使用 resolve.alias 代替 source.alias + * 因此如果 alias 为空对象,则删除 source.alias,避免在默认情况下出现警告 + */ + if (typeof alias === 'object' && Object.keys(alias).length === 0) { + delete rsbuildConfig.source?.alias; + } + rsbuildConfig.tools!.htmlPlugin = htmlPlugin as ToolsConfig['htmlPlugin']; rsbuildConfig.tools!.lightningcssLoader ??= false; diff --git a/packages/cli/uni-builder/src/types.ts b/packages/cli/uni-builder/src/types.ts index f3873ee3e278..7d1b35c00e30 100644 --- a/packages/cli/uni-builder/src/types.ts +++ b/packages/cli/uni-builder/src/types.ts @@ -461,6 +461,7 @@ export type UniBuilderConfig = { performance?: RsbuildConfig['performance']; security?: Omit; tools?: Omit; + resolve?: RsbuildConfig['resolve']; source?: Omit; // plugins is a new field, should avoid adding modern plugin by mistake plugins?: RsbuildPlugins; diff --git a/packages/runtime/plugin-garfish/src/cli/index.ts b/packages/runtime/plugin-garfish/src/cli/index.ts index 8dd7334ef36c..1f75780398a5 100644 --- a/packages/runtime/plugin-garfish/src/cli/index.ts +++ b/packages/runtime/plugin-garfish/src/cli/index.ts @@ -118,7 +118,7 @@ export const garfishPlugin = (): CliPluginFuture> => ({ output: { disableCssExtract, }, - source: { + resolve: { alias: { [`@${metaName}/runtime/garfish`]: `@${metaName}/plugin-garfish/runtime`, }, diff --git a/packages/runtime/plugin-router-v5/src/cli/index.ts b/packages/runtime/plugin-router-v5/src/cli/index.ts index 6b50f0fd302e..2ceb0f82adc5 100644 --- a/packages/runtime/plugin-router-v5/src/cli/index.ts +++ b/packages/runtime/plugin-router-v5/src/cli/index.ts @@ -44,7 +44,7 @@ export const routerPlugin = (): CliPluginFuture => ({ ); return { - source: { + resolve: { alias: { [`@${metaName}/runtime/router-v5`]: routerExportsUtils.getPath(), }, diff --git a/packages/runtime/plugin-router-v7/src/cli/index.ts b/packages/runtime/plugin-router-v7/src/cli/index.ts index 1cdbc00d3340..ea8e242733a0 100644 --- a/packages/runtime/plugin-router-v7/src/cli/index.ts +++ b/packages/runtime/plugin-router-v7/src/cli/index.ts @@ -18,7 +18,7 @@ export const routerPlugin = (): CliPluginFuture => ({ }); } return { - source: { + resolve: { alias: { 'react-router-dom$': require .resolve('../runtime') diff --git a/packages/runtime/plugin-runtime/src/cli/alias.ts b/packages/runtime/plugin-runtime/src/cli/alias.ts index 648ce0d2c390..7ba93d728d9c 100644 --- a/packages/runtime/plugin-runtime/src/cli/alias.ts +++ b/packages/runtime/plugin-runtime/src/cli/alias.ts @@ -35,7 +35,7 @@ export const builderPluginAlias = ({ } }); return mergeRsbuildConfig(userConfig, { - source: { + resolve: { alias: { ...entrypointsAlias, ...mainEntrypointsAlias }, }, }); diff --git a/packages/runtime/plugin-runtime/src/cli/index.ts b/packages/runtime/plugin-runtime/src/cli/index.ts index 431d80944cd3..c53cec1737c0 100644 --- a/packages/runtime/plugin-runtime/src/cli/index.ts +++ b/packages/runtime/plugin-runtime/src/cli/index.ts @@ -91,7 +91,7 @@ export const runtimePlugin = (params?: { return { runtime: {}, runtimeByEntries: {}, - source: { + resolve: { alias: { /** * twin.macro inserts styled-components into the code during the compilation process diff --git a/packages/runtime/plugin-runtime/src/cli/ssr/index.ts b/packages/runtime/plugin-runtime/src/cli/ssr/index.ts index d41ab7776581..1ecdfb50dc82 100644 --- a/packages/runtime/plugin-runtime/src/cli/ssr/index.ts +++ b/packages/runtime/plugin-runtime/src/cli/ssr/index.ts @@ -133,7 +133,7 @@ export const ssrPlugin = (): CliPluginFuture> => ({ return { builderPlugins: [ssrBuilderPlugin(api)], - source: { + resolve: { alias: { // ensure that all packages use the same storage in @modern-js/runtime-utils/node '@modern-js/runtime-utils/node$': require diff --git a/packages/runtime/plugin-state/src/cli/index.ts b/packages/runtime/plugin-state/src/cli/index.ts index 63059b3ac8ea..4733144213fc 100644 --- a/packages/runtime/plugin-state/src/cli/index.ts +++ b/packages/runtime/plugin-state/src/cli/index.ts @@ -32,7 +32,7 @@ export const statePlugin = (): CliPluginFuture> => ({ api.config(() => { const { metaName } = api.getAppContext(); return { - source: { + resolve: { alias: { [`@${metaName}/runtime/model`]: `@${metaName}/plugin-state/runtime`, }, diff --git a/packages/runtime/plugin-testing/src/base/config/index.ts b/packages/runtime/plugin-testing/src/base/config/index.ts index 2a344a55f382..ca7d59eb118f 100644 --- a/packages/runtime/plugin-testing/src/base/config/index.ts +++ b/packages/runtime/plugin-testing/src/base/config/index.ts @@ -25,6 +25,9 @@ export type UserConfig = { source?: { alias?: AliasOption; }; + resolve?: { + alias?: AliasOption; + }; testing?: TestConfig; tools?: { jest: JestConfig | ((config: JestConfig) => JestConfig); diff --git a/packages/runtime/plugin-testing/src/cli/index.ts b/packages/runtime/plugin-testing/src/cli/index.ts index dada41dc1468..33fa408bc406 100644 --- a/packages/runtime/plugin-testing/src/cli/index.ts +++ b/packages/runtime/plugin-testing/src/cli/index.ts @@ -92,7 +92,7 @@ export const testingPlugin = (): CliPlugin<{ ); return { - source: { + resolve: { alias: { // The module-tools alias configuration is different and more specific than app-tools. // So for the time being, the @ alias is configured here. diff --git a/packages/server/plugin-express/src/cli/index.ts b/packages/server/plugin-express/src/cli/index.ts index c88dd012f9e2..45caa4405a56 100644 --- a/packages/server/plugin-express/src/cli/index.ts +++ b/packages/server/plugin-express/src/cli/index.ts @@ -34,7 +34,7 @@ export const expressPlugin = (): CliPlugin => ({ : '@modern-js/plugin-express/runtime'; return { - source: { + resolve: { alias: { '@modern-js/runtime/server': runtimePath, '@modern-js/runtime/express': runtimePath, diff --git a/packages/server/plugin-koa/src/cli/index.ts b/packages/server/plugin-koa/src/cli/index.ts index 2778e69c9ca2..6f3b7002c537 100644 --- a/packages/server/plugin-koa/src/cli/index.ts +++ b/packages/server/plugin-koa/src/cli/index.ts @@ -39,7 +39,7 @@ export const koaPlugin = (): CliPlugin => ({ '@modern-js/runtime/koa': runtimePath, }, }, - source: { + resolve: { alias: { '@modern-js/runtime/server$': alias, '@modern-js/runtime/koa': alias, diff --git a/packages/solutions/app-tools/src/builder/generator/createBuilderProviderConfig.ts b/packages/solutions/app-tools/src/builder/generator/createBuilderProviderConfig.ts index c90474a90555..5eed5cfb5325 100644 --- a/packages/solutions/app-tools/src/builder/generator/createBuilderProviderConfig.ts +++ b/packages/solutions/app-tools/src/builder/generator/createBuilderProviderConfig.ts @@ -31,6 +31,9 @@ export function createBuilderProviderConfig( const config = { ...resolveConfig, plugins: [], + resolve: { + ...resolveConfig.resolve, + }, dev: { ...resolveConfig.dev, port: appContext.port, diff --git a/packages/solutions/app-tools/src/commands/build.ts b/packages/solutions/app-tools/src/commands/build.ts index b0d7789ca0d9..76493ce9185a 100644 --- a/packages/solutions/app-tools/src/commands/build.ts +++ b/packages/solutions/app-tools/src/commands/build.ts @@ -28,7 +28,10 @@ export const build = async ( await registerEsm({ appDir: appContext.appDirectory, distDir: appContext.distDirectory, - alias: resolvedConfig.source?.alias, + alias: { + ...resolvedConfig.resolve.alias, + ...resolvedConfig.source?.alias, + }, }); } diff --git a/packages/solutions/app-tools/src/commands/dev.ts b/packages/solutions/app-tools/src/commands/dev.ts index c2e08bcf3381..b15da69c0ff3 100644 --- a/packages/solutions/app-tools/src/commands/dev.ts +++ b/packages/solutions/app-tools/src/commands/dev.ts @@ -39,7 +39,10 @@ export const dev = async ( await registerEsm({ appDir: appContext.appDirectory, distDir: appContext.distDirectory, - alias: normalizedConfig.source?.alias, + alias: { + ...normalizedConfig.resolve.alias, + ...normalizedConfig.source?.alias, + }, }); } diff --git a/packages/solutions/app-tools/src/config/default.ts b/packages/solutions/app-tools/src/config/default.ts index ab82f6025006..5361b34c6412 100644 --- a/packages/solutions/app-tools/src/config/default.ts +++ b/packages/solutions/app-tools/src/config/default.ts @@ -45,6 +45,10 @@ export function createDefaultConfig( entriesDir: './src', configDir: './config', globalVars: getAutoInjectEnv(appContext), + alias: {}, + }; + + const resolve: AppUserConfig['resolve'] = { alias: { [appContext.internalDirAlias]: appContext.internalDirectory, [appContext.internalSrcAlias]: appContext.srcDirectory!, @@ -80,6 +84,7 @@ export function createDefaultConfig( return { source, + resolve, output, server, dev, diff --git a/packages/solutions/app-tools/src/config/legacy/index.ts b/packages/solutions/app-tools/src/config/legacy/index.ts index d8a0f0d3673f..ed3354265293 100644 --- a/packages/solutions/app-tools/src/config/legacy/index.ts +++ b/packages/solutions/app-tools/src/config/legacy/index.ts @@ -29,6 +29,7 @@ export function transformNormalizedConfig( autoLoadPlugins, } = config; return { + resolve: {}, source, html, output, diff --git a/packages/solutions/app-tools/src/types/config/index.ts b/packages/solutions/app-tools/src/types/config/index.ts index a05096288410..ed3b9d52b7c4 100644 --- a/packages/solutions/app-tools/src/types/config/index.ts +++ b/packages/solutions/app-tools/src/types/config/index.ts @@ -11,6 +11,7 @@ import type { ExperimentsUserConfig } from './experiments'; import type { HtmlUserConfig } from './html'; import type { OutputUserConfig } from './output'; import type { PerformanceUserConfig } from './performance'; +import type { ResolveUserConfig } from './resolve'; import type { SecurityUserConfig } from './security'; import type { SourceUserConfig } from './source'; import type { TestingUserConfig } from './testing'; @@ -26,6 +27,7 @@ export interface RuntimeByEntriesUserConfig { } export interface AppToolsUserConfig { + resolve?: ResolveUserConfig; server?: ServerUserConfig; source?: SourceUserConfig; output?: OutputUserConfig; diff --git a/packages/solutions/app-tools/src/types/config/resolve.ts b/packages/solutions/app-tools/src/types/config/resolve.ts new file mode 100644 index 000000000000..6329012cfb5b --- /dev/null +++ b/packages/solutions/app-tools/src/types/config/resolve.ts @@ -0,0 +1,3 @@ +import type { UniBuilderConfig } from '@modern-js/uni-builder'; + +export type ResolveUserConfig = UniBuilderConfig['resolve']; diff --git a/tests/integration/alias-set/modern.config.ts b/tests/integration/alias-set/modern.config.ts index 845787f93276..2bdc86936ba0 100644 --- a/tests/integration/alias-set/modern.config.ts +++ b/tests/integration/alias-set/modern.config.ts @@ -1,3 +1,10 @@ +import path from 'path'; import { applyBaseConfig } from '../../utils/applyBaseConfig'; -export default applyBaseConfig(); +export default applyBaseConfig({ + resolve: { + alias: { + '@resolve-alias': path.resolve(__dirname, 'src/alias'), + }, + }, +}); diff --git a/tests/integration/alias-set/src/App.tsx b/tests/integration/alias-set/src/App.tsx index 3d1b5f602c4d..49fd453cf3c3 100644 --- a/tests/integration/alias-set/src/App.tsx +++ b/tests/integration/alias-set/src/App.tsx @@ -1,4 +1,5 @@ import test from '@common/constants'; +import '@resolve-alias'; function App() { return
Hello Modern.js! {test}
; diff --git a/tests/integration/alias-set/src/alias/index.ts b/tests/integration/alias-set/src/alias/index.ts new file mode 100644 index 000000000000..a6a536566597 --- /dev/null +++ b/tests/integration/alias-set/src/alias/index.ts @@ -0,0 +1 @@ +console.log('my-alias'); From dd1de042592b1b921cb28e422b8a2c1af5c17888 Mon Sep 17 00:00:00 2001 From: kongjiacong Date: Tue, 24 Jun 2025 14:20:28 +0800 Subject: [PATCH 2/6] feat: add register alias --- packages/solutions/app-tools/src/commands/build.ts | 12 ++++++------ packages/solutions/app-tools/src/commands/dev.ts | 11 ++++++----- tests/integration/alias-set/src/alias/index.ts | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/packages/solutions/app-tools/src/commands/build.ts b/packages/solutions/app-tools/src/commands/build.ts index 76493ce9185a..6ba09e04b6d8 100644 --- a/packages/solutions/app-tools/src/commands/build.ts +++ b/packages/solutions/app-tools/src/commands/build.ts @@ -1,5 +1,6 @@ import type { CLIPluginAPI } from '@modern-js/plugin-v2'; -import { logger } from '@modern-js/utils'; +import { type Alias, logger } from '@modern-js/utils'; +import type { ConfigChain } from '@rsbuild/core'; import type { AppTools } from '../types'; import { buildServerConfig } from '../utils/config'; import { loadServerPlugins } from '../utils/loadPlugins'; @@ -35,11 +36,10 @@ export const build = async ( }); } - await registerCompiler( - appContext.appDirectory, - appContext.distDirectory, - resolvedConfig?.source?.alias, - ); + await registerCompiler(appContext.appDirectory, appContext.distDirectory, { + ...resolvedConfig?.resolve?.alias, + ...resolvedConfig?.source?.alias, + } as ConfigChain); const { apiOnly } = appContext; diff --git a/packages/solutions/app-tools/src/commands/dev.ts b/packages/solutions/app-tools/src/commands/dev.ts index b15da69c0ff3..ae8e607636b9 100644 --- a/packages/solutions/app-tools/src/commands/dev.ts +++ b/packages/solutions/app-tools/src/commands/dev.ts @@ -3,11 +3,13 @@ import type { CLIPluginAPI } from '@modern-js/plugin-v2'; import { applyPlugins } from '@modern-js/prod-server'; import { type ApplyPlugins, createDevServer } from '@modern-js/server'; import { + type Alias, DEFAULT_DEV_HOST, SERVER_DIR, getMeta, logger, } from '@modern-js/utils'; +import type { ConfigChain } from '@rsbuild/core'; import type { AppNormalizedConfig, AppTools } from '../types'; import { buildServerConfig } from '../utils/config'; import { setServer } from '../utils/createServer'; @@ -46,11 +48,10 @@ export const dev = async ( }); } - await registerCompiler( - appContext.appDirectory, - appContext.distDirectory, - normalizedConfig?.source?.alias, - ); + await registerCompiler(appContext.appDirectory, appContext.distDirectory, { + ...normalizedConfig?.source?.alias, + ...normalizedConfig?.resolve?.alias, + } as ConfigChain); const { appDirectory, diff --git a/tests/integration/alias-set/src/alias/index.ts b/tests/integration/alias-set/src/alias/index.ts index a6a536566597..8ecf95f43972 100644 --- a/tests/integration/alias-set/src/alias/index.ts +++ b/tests/integration/alias-set/src/alias/index.ts @@ -1 +1 @@ -console.log('my-alias'); +console.log('resolve-alias success'); From 6440179e3d709575b822af431e5192902774e36a Mon Sep 17 00:00:00 2001 From: kongjiacong Date: Tue, 24 Jun 2025 16:09:40 +0800 Subject: [PATCH 3/6] feat: update test snapshot --- .../__snapshots__/parseConfig.test.ts.snap | 17 +++++++++++++++++ .../plugin-router-v5/tests/index.test.ts | 2 +- .../plugin-runtime/tests/router/index.test.ts | 2 +- .../builder/__snapshots__/index.test.ts.snap | 1 + 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/cli/uni-builder/tests/__snapshots__/parseConfig.test.ts.snap b/packages/cli/uni-builder/tests/__snapshots__/parseConfig.test.ts.snap index 09f36286a321..b1ffe6aefe28 100644 --- a/packages/cli/uni-builder/tests/__snapshots__/parseConfig.test.ts.snap +++ b/packages/cli/uni-builder/tests/__snapshots__/parseConfig.test.ts.snap @@ -32,6 +32,7 @@ exports[`parseCommonConfig > dev.xxx 1`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "compress": false, @@ -94,6 +95,7 @@ exports[`parseCommonConfig > dev.xxx 2`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -147,6 +149,7 @@ exports[`parseCommonConfig > html.faviconByEntries 1`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -202,6 +205,7 @@ exports[`parseCommonConfig > html.faviconByEntries 2`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -260,6 +264,7 @@ exports[`parseCommonConfig > html.faviconByEntries 3`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -315,6 +320,7 @@ exports[`parseCommonConfig > html.metaByEntries 1`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -377,6 +383,7 @@ exports[`parseCommonConfig > html.metaByEntries 2`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -432,6 +439,7 @@ exports[`parseCommonConfig > html.templateByEntries 1`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -490,6 +498,7 @@ exports[`parseCommonConfig > html.templateByEntries 2`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -545,6 +554,7 @@ exports[`parseCommonConfig > html.templateParametersByEntries 1`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -605,6 +615,7 @@ exports[`parseCommonConfig > html.templateParametersByEntries 2`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -662,6 +673,7 @@ exports[`parseCommonConfig > html.titleByEntries 1`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -719,6 +731,7 @@ exports[`parseCommonConfig > html.titleByEntries 2`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -776,6 +789,7 @@ exports[`parseCommonConfig > output.cssModuleLocalIdentName 1`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -833,6 +847,7 @@ exports[`parseCommonConfig > output.disableCssModuleExtension 1`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -886,6 +901,7 @@ exports[`parseCommonConfig > output.enableInlineScripts 1`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, @@ -937,6 +953,7 @@ exports[`parseCommonConfig > output.enableInlineStyles 1`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "security": {}, "server": { "htmlFallback": false, diff --git a/packages/runtime/plugin-router-v5/tests/index.test.ts b/packages/runtime/plugin-router-v5/tests/index.test.ts index 84003b0413c4..7add8c36e797 100644 --- a/packages/runtime/plugin-router-v5/tests/index.test.ts +++ b/packages/runtime/plugin-router-v5/tests/index.test.ts @@ -61,7 +61,7 @@ describe('cli-router-legacy', () => { const config = await api.getHooks().config.call(); expect( config.find( - (item: any) => item.source.alias['@modern-js/runtime/plugins'], + (item: any) => item.resolve.alias['@modern-js/runtime/plugins'], ), ).toBeTruthy(); }); diff --git a/packages/runtime/plugin-runtime/tests/router/index.test.ts b/packages/runtime/plugin-runtime/tests/router/index.test.ts index 6936fa6cd2c4..133190eb2f1f 100644 --- a/packages/runtime/plugin-runtime/tests/router/index.test.ts +++ b/packages/runtime/plugin-runtime/tests/router/index.test.ts @@ -30,7 +30,7 @@ describe('cli-router', () => { const config = await runner.config(); expect( config.find( - (item: any) => item.source.alias['@modern-js/runtime/plugins'], + (item: any) => item.resolve.alias['@modern-js/runtime/plugins'], ), ).toBeTruthy(); }); diff --git a/packages/solutions/app-tools/tests/builder/__snapshots__/index.test.ts.snap b/packages/solutions/app-tools/tests/builder/__snapshots__/index.test.ts.snap index bb9fb253c9e3..088ef51ab3c7 100644 --- a/packages/solutions/app-tools/tests/builder/__snapshots__/index.test.ts.snap +++ b/packages/solutions/app-tools/tests/builder/__snapshots__/index.test.ts.snap @@ -139,6 +139,7 @@ exports[`create builder provider config should add default config 1`] = ` }, "performance": {}, "plugins": [], + "resolve": {}, "server": undefined, "source": {}, } From 9543fc4f5f763f5fec747f8b78c34c4038f93f61 Mon Sep 17 00:00:00 2001 From: kongjiacong Date: Tue, 24 Jun 2025 16:10:47 +0800 Subject: [PATCH 4/6] docs: add changeset --- .changeset/young-coins-bet.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .changeset/young-coins-bet.md diff --git a/.changeset/young-coins-bet.md b/.changeset/young-coins-bet.md new file mode 100644 index 000000000000..afe53b34abef --- /dev/null +++ b/.changeset/young-coins-bet.md @@ -0,0 +1,15 @@ +--- +'@modern-js/plugin-router-v5': patch +'@modern-js/plugin-router-v7': patch +'@modern-js/plugin-garfish': patch +'@modern-js/runtime': patch +'@modern-js/plugin-testing': patch +'@modern-js/plugin-express': patch +'@modern-js/plugin-state': patch +'@modern-js/app-tools': patch +'@modern-js/plugin-koa': patch +'@modern-js/uni-builder': patch +--- + +feat: support resolve configuration in rsbuild. +feat: 支持 rsbuild 的 resolve 配置。 From 10ea165a1a152a69a8fd0c194e8d8120fa1fcceb Mon Sep 17 00:00:00 2001 From: kongjiacong Date: Tue, 24 Jun 2025 17:52:39 +0800 Subject: [PATCH 5/6] fix: test case --- packages/runtime/plugin-router-v7/src/cli/index.ts | 2 ++ packages/runtime/plugin-runtime/src/cli/index.ts | 2 ++ packages/solutions/app-tools/src/commands/build.ts | 2 +- packages/solutions/app-tools/src/commands/dev.ts | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/runtime/plugin-router-v7/src/cli/index.ts b/packages/runtime/plugin-router-v7/src/cli/index.ts index ea8e242733a0..1943ea6a78b7 100644 --- a/packages/runtime/plugin-router-v7/src/cli/index.ts +++ b/packages/runtime/plugin-router-v7/src/cli/index.ts @@ -30,6 +30,8 @@ export const routerPlugin = (): CliPluginFuture => ({ .resolve('../runtime') .replace(/\/cjs\//, '/esm/'), }, + }, + source: { globalVars: { 'process.env._MODERN_ROUTER_VERSION': 'v7', }, diff --git a/packages/runtime/plugin-runtime/src/cli/index.ts b/packages/runtime/plugin-runtime/src/cli/index.ts index c53cec1737c0..50441249102f 100644 --- a/packages/runtime/plugin-runtime/src/cli/index.ts +++ b/packages/runtime/plugin-runtime/src/cli/index.ts @@ -112,6 +112,8 @@ export const runtimePlugin = (params?: { ), '@meta/runtime$': require.resolve('@modern-js/runtime'), }, + }, + source: { globalVars: { 'process.env.IS_REACT18': process.env.IS_REACT18, }, diff --git a/packages/solutions/app-tools/src/commands/build.ts b/packages/solutions/app-tools/src/commands/build.ts index 6ba09e04b6d8..6c1abdba884b 100644 --- a/packages/solutions/app-tools/src/commands/build.ts +++ b/packages/solutions/app-tools/src/commands/build.ts @@ -30,7 +30,7 @@ export const build = async ( appDir: appContext.appDirectory, distDir: appContext.distDirectory, alias: { - ...resolvedConfig.resolve.alias, + ...resolvedConfig.resolve?.alias, ...resolvedConfig.source?.alias, }, }); diff --git a/packages/solutions/app-tools/src/commands/dev.ts b/packages/solutions/app-tools/src/commands/dev.ts index ae8e607636b9..c30649b4febe 100644 --- a/packages/solutions/app-tools/src/commands/dev.ts +++ b/packages/solutions/app-tools/src/commands/dev.ts @@ -42,7 +42,7 @@ export const dev = async ( appDir: appContext.appDirectory, distDir: appContext.distDirectory, alias: { - ...normalizedConfig.resolve.alias, + ...normalizedConfig.resolve?.alias, ...normalizedConfig.source?.alias, }, }); From 6c6997d203595767e21336c860b928966cd01c4f Mon Sep 17 00:00:00 2001 From: kongjiacong Date: Tue, 24 Jun 2025 19:19:57 +0800 Subject: [PATCH 6/6] chore: test case bff compile alias --- packages/cli/plugin-bff/src/cli.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/cli/plugin-bff/src/cli.ts b/packages/cli/plugin-bff/src/cli.ts index 9ac3ae22142a..adf084e3cdb8 100644 --- a/packages/cli/plugin-bff/src/cli.ts +++ b/packages/cli/plugin-bff/src/cli.ts @@ -3,7 +3,13 @@ import type { AppTools, CliPlugin } from '@modern-js/app-tools'; import { ApiRouter } from '@modern-js/bff-core'; import { compile } from '@modern-js/server-utils'; import type { ServerRoute } from '@modern-js/types'; -import { fs, API_DIR, SHARED_DIR, normalizeOutputPath } from '@modern-js/utils'; +import { + fs, + API_DIR, + type AliasOption, + SHARED_DIR, + normalizeOutputPath, +} from '@modern-js/utils'; import clientGenerator from './utils/clientGenerator'; import pluginGenerator from './utils/pluginGenerator'; import runtimeGenerator from './utils/runtimeGenerator'; @@ -43,6 +49,7 @@ export const bffPlugin = (): CliPlugin => ({ const { server } = modernConfig; const { alias } = modernConfig.source; + const { alias: resolveAlias } = modernConfig.resolve; const { babel } = modernConfig.tools; if (sourceDirs.length > 0) { @@ -50,7 +57,7 @@ export const bffPlugin = (): CliPlugin => ({ appDirectory, { server, - alias, + alias: { ...alias, ...(resolveAlias as AliasOption) }, babelConfig: babel, }, {