# Rsbuild 帮助用户快速在 **Rsbuild App** 或 **Rslib** 中构建 Module Federation 产物 ## 快速开始 ### 安装 你可以通过如下的命令安装插件: ```sh [npm] npm add @module-federation/rsbuild-plugin --save-dev ``` ```sh [yarn] yarn add @module-federation/rsbuild-plugin --save-dev ``` ```sh [pnpm] pnpm add @module-federation/rsbuild-plugin --save-dev ``` ```sh [bun] bun add @module-federation/rsbuild-plugin --save-dev ``` ### 注册插件 #### Rsbuild App ```ts title='rsbuild.config.ts' import { pluginModuleFederation } from '@module-federation/rsbuild-plugin'; import { defineConfig } from '@rsbuild/core'; import { pluginReact } from '@rsbuild/plugin-react'; export default defineConfig({ server: { port: 2000, }, plugins: [ pluginReact(), pluginModuleFederation({ name: 'federation_consumer', remotes: { remote1: 'remote1@http://localhost:2001/mf-manifest.json', }, shared: ['react', 'react-dom'], }), ], }); ``` #### Rslib Module ```ts title='rslib.config.ts' import { pluginModuleFederation } from '@module-federation/rsbuild-plugin'; import { defineConfig } from '@rslib/core'; export default defineConfig({ lib: [ // ... { format: 'mf', output: { distPath: { root: './dist/mf', }, assetPrefix: 'xxx', }, plugins: [ // ... pluginModuleFederation({ name: 'rslib_provider', exposes: { '.': './src/index.tsx', }, shared: { react: { singleton: true, }, 'react-dom': { singleton: true, }, }, }), ], }, ], }); ``` ### 注意 如果需要使用 Module Federation 运行时能力,请安装 [@module-federation/enhanced](/zh/guide/runtime/index.md) ## 配置 - 类型: ```ts export declare const pluginModuleFederation: (moduleFederationOptions: ModuleFederationOptions, rsbuildOptions?: RSBUILD_PLUGIN_OPTIONS) => RsbuildPlugin; type RSBUILD_PLUGIN_OPTIONS = { ssr?: boolean; } ``` ### moduleFederationOptions [Module Federation 配置项](/configure/index.md) ### rsbuildOptions Rsbuild 插件额外配置。 #### target :::tip 仅支持 Rslib 全局插件。 ::: - 类型:`'web' | 'node' | 'dual'` - 默认值:`'web'` 用于指定产物的运行目标环境。当设置为 `dual` 时,会同时构建 Web(浏览器)产物与 Node.js(SSR)产物。 使用 `target: 'dual'` 生成 SSR 产物后,可参考 [创建 Modern.js 消费者](/practice/frameworks/modern/index.md) 创建消费者,并接入对应的 Rslib SSR 生产者进行开发。 #### ssr :::danger 废弃警告 该配置项已废弃,请使用 [target: 'dual'](#target) 来开启 SSR 功能。 ::: - 类型:`boolean` - 默认值:`false` 开启后可以生成 SSR 产物。