moduleFederation.options
- Type:
ModuleFederationConfig
- Default:
undefined
- Version:
>= 0.4.0
Used to configure the Rspack's module federation plugin.
Introduction
When using module federation, it is recommended that you use the moduleFederation.options
option provided by Rsbuild. This option will automatically adjust some related configurations to ensure that the module federation application can run correctly.
When you set the moduleFederation.options
option, Rsbuild will take the following actions:
- Automatically register the ModuleFederationPlugin plugin, and pass the value of
options
to the plugin.
- Set the default value of Rspack's output.publicPath configuration to
'auto'
.
- Turn off the
split-by-experience
rules in Rsbuild's performance.chunkSplit as it may conflict with shared modules, refer to #3161.
- Turn off the splitChunks rule of remote entry.
Usage
The type of moduleFederation.options
is exactly the same as the ModuleFederationPlugin plugin of Rspack:
rsbuild.config.ts
export default defineConfig({
moduleFederation: {
options: {
name: 'remote',
// other options
},
},
});
Please refer to the ModuleFederationPlugin document for all available options.
Example
Here is a minimal example:
remote/rsbuild.config.ts
import { defineConfig } from '@rsbuild/core';
export default defineConfig({
server: {
port: 3002,
},
moduleFederation: {
options: {
name: 'remote',
exposes: {
'./Button': './src/Button',
},
filename: 'remoteEntry.js',
},
},
});
host/rsbuild.config.ts
import { defineConfig } from '@rsbuild/core';
export default defineConfig({
server: {
port: 3002,
},
moduleFederation: {
options: {
name: 'host',
remotes: {
remote: 'remote@http://localhost:3002/remoteEntry.js',
},
},
},
});
For more examples, please see: