# Rspress :::info 注意 需要 [Rspress 2.0.0-beta.16](https://v2.rspress.rs/zh/plugin/system/introduction) 及以上版本。 ::: 帮助用户在 **Rspress** 中构建、消费 {props.name || 'Module Federation'} 产物 ## 快速开始 {props.demo} ### 安装 你可以通过如下的命令安装插件: ```sh [npm] npm add @module-federation/rspress-plugin ``` ```sh [yarn] yarn add @module-federation/rspress-plugin ``` ```sh [pnpm] pnpm add @module-federation/rspress-plugin ``` ```sh [bun] bun add @module-federation/rspress-plugin ``` ### 创建 {props.configName || 'module-federation.config.ts'} 创建 {props.configName || 'module-federation.config.ts'} 文件,内容如下: {props.createConfig || <CreateConfig />} ### 注册插件 {props.registerPlugin || React.createElement(RegisterPlugin)} ### 加载文档片段 你可以直接在 `mdx` 文件中加载导出的文档片段。 ```mdx title='docs/en/guide/intro.mdx' import Intro from 'mf-doc/intro-zh'; {/* 文档片段支持传参,以 props 方式去消费 */} <Intro cmdTools={['a','b']} /> ``` 文档片段支持传参,以 props 方式去消费。 假设你需要在文档片段中使用 `cmdTools` 变量,可以参考下方内容: ```mdx title='docs/zh/guide/intro.mdx' {(props.cmdTools || ['pkg-a', 'pkg-b']).map(cmdTool=>(<code>{cmdTool}</code>))} ``` ## 配置 - 类型: {props.configType || <ConfigType />} ### {props.pluginOptionName || 'moduleFederationOptions'} [{props.name || 'Module Federation'} 配置项](/configure/index.md) ### rspressOptions Rspress 插件额外配置。 #### autoShared - 类型:`boolean` - 默认值:`true` Rspress 使用了 `react`、`react-dom`、`@mdx-js/react` 第三方依赖,并且上述三个依赖需要保证单利,因此在构建时会自动注入 `shared` 配置。 你也可以设置 `autoShared: false` 来禁用此行为。 默认 `shared` 配置如下: ```json react: { singleton: true, requiredVersion: false, }, 'react-dom': { singleton: true, requiredVersion: false, }, 'react/': { singleton: true, requiredVersion: false, }, 'react-dom/': { singleton: true, requiredVersion: false, }, '@mdx-js/react': { singleton: true, requiredVersion: false }, '@rspress/core/runtime': { singleton: true, requiredVersion: false } ``` #### rebuildSearchIndex - 类型:`boolean` - 默认值:`true` Rspress 构建时会自动生成搜索索引,但是生成过程仅支持 `.mdx` 或 `.md` 文件,因此当加载了模块联邦的文档片段时,该文档片段不会被搜索到。 为了避免此行为,MF Rspress Plugin 会在 SSG 完成后根据渲染完成的 `html` 重新生成搜索索引以支持搜索功能。 如果你采用了 remoteSearch 或其他搜索功能,可以设置 `rebuildSearchIndex: false` 来禁用此行为。 > 注意:该功能仅在 ssg 模式下生效。 ## FAQ ### 是否支持 local search ? 仅支持 `ssg` 模式,详情参考 [rebuildSearchIndex](#rebuildsearchindex)。 ### Could not parse expression with swc: Expression expected" 当引用 MDX 组件时,可能会遇到如下错误: ```bash File: "/root/docs/zh/guide/basic/mf.mdx" Error: "23:8: Could not parse expression with swc: Expression expected" ``` 这是 Rspress 在解析 MDX 组件时未能正确解析表达式的问题,可以通过以下方式解决: ```diff import RemoteIntroDoc from 'mf-doc/intro'; import Head from '@components/Head'; + import React from 'react'; - <RemoteIntroDoc head={<Head />} /> + <RemoteIntroDoc head={React.createElement(Head)}/> ```