模块联邦是一种用于 JavaScript 应用程序分解的架构模式(类似于服务器端的微服务),它允许您在多个 JavaScript 应用程序(或微前端)之间共享代码和资源。
Rspack 团队与模块联邦开发团队密切合作,并为模块联邦提供一流的支持。
模块联邦有几个典型的用例,包括
模块联邦可以帮助您
模块联邦 (MF) 目前有多个主要版本,您可以根据需要选择一个。
以下是一些版本的特性
版本 | 描述 | 功能 | 用例 |
---|---|---|---|
MF v2.0 | - 模块联邦的增强版 - 基于模块联邦 v1.5 实现 |
- 提供额外的开箱即用功能,例如动态 TS 类型提示、Chrome Devtools、预加载等。 - 更适合支持大型 Web 应用程序的微前端架构 - 包含模块联邦 1.5 的所有功能 |
需要使用模块联邦 2.0 的高级功能的项目 |
MF v1.5 | 内置于 Rspack 的版本 | - 支持模块联邦 v1.0 的模块导出、模块加载、依赖项共享功能 - 添加了运行时插件功能,允许用户扩展模块联邦的行为和功能 |
不需要使用模块联邦 2.0 的额外功能的项目 |
MF v1.0 | 基于 webpack.container.ModuleFederationPlugin 实现的版本 | - 不再迭代 - 我们建议使用模块联邦 v1.5 或 v2.0 版本 |
从 webpack 迁移到 Rspack 并希望将逻辑与原始逻辑保持尽可能一致的项目 |
模块联邦 2.0 基于模块联邦提供了一些额外的开箱即用功能,例如动态 TS 类型提示、Chrome Devtools、运行时插件、预加载,使模块联邦更适合支持大型 Web 应用程序的微前端架构。模块联邦 v2.0 基于 v1.5 实现。
您需要安装额外的 @module-federation/enhanced
插件才能使用模块联邦 v2.0。
有关具体用法详细信息,请参阅 模块联邦 v2.0 官方文档。
这是内置于 Rspack 的版本。除了支持模块联邦 v1.0 的模块导出、模块加载和依赖项共享功能外,它还添加了运行时插件功能,允许用户扩展模块联邦的行为和功能。
您可以通过 Rspack 的 ModuleFederationPlugin 使用它,无需安装任何额外的插件。
参考:模块联邦 v1.5 示例。
此版本是为了与 webpack.container.ModuleFederationPlugin 兼容而实现的。
您可以通过 Rspack 的 ModuleFederationPluginV1 使用它。
模块联邦 v1.0 已经不再迭代,我们建议使用模块联邦 v1.5 或 v2.0 版本。