diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 910d5d5f..bd837892 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -109,9 +109,9 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) devDependencies: - '@module-federation/enhanced': - specifier: ^0.7.3 - version: 0.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(vue-tsc@1.8.27(typescript@5.4.5))(webpack@5.96.1) + '@module-federation/rsbuild-plugin': + specifier: ^0.8.0 + version: 0.8.0(@module-federation/enhanced@0.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(vue-tsc@1.8.27(typescript@5.4.5))(webpack@5.96.1))(@rsbuild/core@1.0.19) '@rsbuild/core': specifier: ^1.0.19 version: 1.0.19 @@ -137,9 +137,9 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) devDependencies: - '@module-federation/enhanced': - specifier: ^0.7.3 - version: 0.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(vue-tsc@1.8.27(typescript@5.4.5))(webpack@5.96.1) + '@module-federation/rsbuild-plugin': + specifier: ^0.8.0 + version: 0.8.0(@module-federation/enhanced@0.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(vue-tsc@1.8.27(typescript@5.4.5))(webpack@5.96.1))(@rsbuild/core@1.0.19) '@rsbuild/core': specifier: ^1.0.19 version: 1.0.19 @@ -5563,6 +5563,13 @@ packages: '@module-federation/manifest@0.7.3': resolution: {integrity: sha512-Sa3yr92LQ7M9CfEE+21JL1M3epOdmUzUKU0OTzYc/UBl6Rj/2ER9EGPfj6CQ8mwyjV7qEwq9761H4WTC4NHuag==} + '@module-federation/rsbuild-plugin@0.8.0': + resolution: {integrity: sha512-/CbaSRrpNtt6c5S3TuaQQ3CiUY7QfvaU0J33CyWkv8h0xKfYN6A0aMoxQvYi3z5qyTPth2V49YnlRUlQnaecPA==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@module-federation/enhanced': 0.8.0 + '@rsbuild/core': 1.x + '@module-federation/rspack@0.7.3': resolution: {integrity: sha512-P/BlpOPiFHWsqv2zZpvFm9kl3SxHVEyM3V7oXRESUDMby23e7Y5ks72qofeHDoRnKHmUduiSJiSm7HWNgFPIIw==} peerDependencies: @@ -5610,6 +5617,9 @@ packages: '@module-federation/sdk@0.7.3': resolution: {integrity: sha512-DeU2pvEqiTWcfuZuWeV1/XSRU6zC4u7v2uLg44F6uRt5+F0W/eVwb0Wme9CmEmL/oit0dZ7qe09bf/IRrEJylw==} + '@module-federation/sdk@0.8.0': + resolution: {integrity: sha512-V2cNGO//sWCyHTaQ0iTcoslolqVgdBIBOkZVLyk9AkZ4B3CO49pe/TmIIaVs9jVg3GO+ZmmazBFKRkqdn2PdRg==} + '@module-federation/third-party-dts-extractor@0.7.3': resolution: {integrity: sha512-SptghP6wlcG6GKFplRUnokldD7ebBSHrZpITFVYSXiddW7Hqk5JxNqpx3sm7R6xi1UV1eLPRsx23wzEsxLJAJw==} @@ -21075,6 +21085,12 @@ snapshots: - utf-8-validate - vue-tsc + '@module-federation/rsbuild-plugin@0.8.0(@module-federation/enhanced@0.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(vue-tsc@1.8.27(typescript@5.4.5))(webpack@5.96.1))(@rsbuild/core@1.0.19)': + dependencies: + '@module-federation/enhanced': 0.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(vue-tsc@1.8.27(typescript@5.4.5))(webpack@5.96.1) + '@module-federation/sdk': 0.8.0 + '@rsbuild/core': 1.0.19 + '@module-federation/rspack@0.7.3(typescript@5.4.5)(vue-tsc@1.8.27(typescript@5.4.5))': dependencies: '@module-federation/bridge-react-webpack-plugin': 0.7.3 @@ -21139,6 +21155,10 @@ snapshots: dependencies: isomorphic-rslog: 0.0.6 + '@module-federation/sdk@0.8.0': + dependencies: + isomorphic-rslog: 0.0.6 + '@module-federation/third-party-dts-extractor@0.7.3': dependencies: find-pkg: 2.0.0 diff --git a/rsbuild/module-federation-enhanced/consumer/package.json b/rsbuild/module-federation-enhanced/consumer/package.json index 21d67c20..f617d204 100644 --- a/rsbuild/module-federation-enhanced/consumer/package.json +++ b/rsbuild/module-federation-enhanced/consumer/package.json @@ -11,7 +11,7 @@ "react-dom": "^18.3.1" }, "devDependencies": { - "@module-federation/enhanced": "^0.7.3", + "@module-federation/rsbuild-plugin": "^0.8.0", "@rsbuild/core": "^1.0.19", "@rsbuild/plugin-react": "^1.0.7", "@types/react": "^18.3.12", diff --git a/rsbuild/module-federation-enhanced/consumer/rsbuild.config.ts b/rsbuild/module-federation-enhanced/consumer/rsbuild.config.ts index 41127611..f0391c0a 100644 --- a/rsbuild/module-federation-enhanced/consumer/rsbuild.config.ts +++ b/rsbuild/module-federation-enhanced/consumer/rsbuild.config.ts @@ -1,27 +1,19 @@ import { defineConfig } from '@rsbuild/core'; import { pluginReact } from '@rsbuild/plugin-react'; -import { ModuleFederationPlugin } from '@module-federation/enhanced/rspack'; +import { pluginModuleFederation } from '@module-federation/rsbuild-plugin'; export default defineConfig({ - server: { - port: 2000, - }, - tools: { - rspack: (config, { appendPlugins }) => { - appendPlugins([ - new ModuleFederationPlugin({ - name: 'federation_consumer', - remotes: { - federation_provider: 'federation_provider@http://localhost:3000/mf-manifest.json', - }, - shared: ['react', 'react-dom'], - }), - ]); - }, - }, plugins: [ - pluginReact({ - splitChunks: { react: false, router: false }, + pluginReact(), + pluginModuleFederation({ + name: 'federation_consumer', + remotes: { + federation_provider: 'federation_provider@http://localhost:3000/mf-manifest.json', + }, + shared: ['react', 'react-dom'], }), ], + server: { + port: 2000, + }, }); diff --git a/rsbuild/module-federation-enhanced/provider/package.json b/rsbuild/module-federation-enhanced/provider/package.json index 5a78c070..c96803a2 100644 --- a/rsbuild/module-federation-enhanced/provider/package.json +++ b/rsbuild/module-federation-enhanced/provider/package.json @@ -11,7 +11,7 @@ "react-dom": "^18.3.1" }, "devDependencies": { - "@module-federation/enhanced": "^0.7.3", + "@module-federation/rsbuild-plugin": "^0.8.0", "@rsbuild/core": "^1.0.19", "@rsbuild/plugin-react": "^1.0.7", "@types/react": "^18.3.12", diff --git a/rsbuild/module-federation-enhanced/provider/rsbuild.config.ts b/rsbuild/module-federation-enhanced/provider/rsbuild.config.ts index d8789105..dbab2575 100644 --- a/rsbuild/module-federation-enhanced/provider/rsbuild.config.ts +++ b/rsbuild/module-federation-enhanced/provider/rsbuild.config.ts @@ -1,33 +1,19 @@ import { defineConfig } from '@rsbuild/core'; import { pluginReact } from '@rsbuild/plugin-react'; -import { ModuleFederationPlugin } from '@module-federation/enhanced/rspack'; +import { pluginModuleFederation } from '@module-federation/rsbuild-plugin'; export default defineConfig({ - server: { - port: 3000, - }, - dev: { - // It is necessary to configure assetPrefix, and in the production build, you need to configure output.assetPrefix - assetPrefix: 'http://localhost:3000', - }, - tools: { - rspack: (config, { appendPlugins }) => { - // You need to set a unique value that is not equal to other applications - config.output!.uniqueName = 'federation_provider'; - appendPlugins([ - new ModuleFederationPlugin({ - name: 'federation_provider', - exposes: { - './button': './src/Button.tsx', - }, - shared: ['react', 'react-dom'], - }), - ]); - }, - }, plugins: [ - pluginReact({ - splitChunks: { react: false, router: false }, + pluginReact(), + pluginModuleFederation({ + name: 'federation_provider', + exposes: { + './button': './src/Button.tsx', + }, + shared: ['react', 'react-dom'], }), ], + server: { + port: 3000, + }, }); diff --git a/rsbuild/module-federation/remote/rsbuild.config.ts b/rsbuild/module-federation/remote/rsbuild.config.ts index f7bc275f..44a80588 100644 --- a/rsbuild/module-federation/remote/rsbuild.config.ts +++ b/rsbuild/module-federation/remote/rsbuild.config.ts @@ -3,11 +3,7 @@ import { pluginReact } from '@rsbuild/plugin-react'; import { mfConfig } from './module-federation.config'; export default defineConfig({ - plugins: [ - pluginReact({ - splitChunks: { react: false, router: false }, - }), - ], + plugins: [pluginReact()], server: { port: 3002, },