Module Federation 是一种 JavaScript 应用分治的架构模式(类似于服务端的微服务),它允许你在多个 JavaScript 应用程序(或微前端)之间共享代码和资源。
Rspack 团队与 Module Federation 的开发团队密切合作,并为 Module Federation 提供一流的支持。
模块联邦有一些典型的使用场景,包括:
模块联邦可以帮助你:
Module Federation 目前有两个主要版本,你可以选择其中一个使用:
这是 Rspack 内置支持的版本,除了支持 Module Federation v1.0 的模块导出、模块加载、依赖共享等能力之外,还添加了运行时插件功能,允许用户扩展模块联邦的行为、功能。
你可以通过 Rsbuild 的 moduleFederation.options 来使用它,无须安装任何插件。
这是 Module Federation 的增强版本。它基于 Module Federation v1.5,并在其基础上,开箱即用的提供了一些额外的功能,比如动态类型提示、manifest 等,这些功能让 Module Federation 更适用于支持大型 Web 应用的微前端架构。
你需要安装额外的 @module-federation/enhanced
插件,才能使用 Module Federation v2.0。
请参考 Module Federation v2.0 官方文档 来了解具体的用法。
Rsbuild 提供了一些 Module Federation 的示例项目,你可以参考: