简介

模块联邦(Module Federation)是一种 JavaScript 应用分治的架构模式,它允许你在多个 JavaScript 应用之间共享代码和资源。

在这种分治的模式下,可以帮助你提升应用程序的性能,增强代码可维护性等。

Module Federation 2.0

Module Federation 作为 Webpack 5 推出的重磅功能,自发布以来已经三年有余。在今年,字节跳动与 Module Federation 的作者 @Zack Jackson 以及社区成员共同推出了 Module Federation 2.0

Module Federation 2.0 基于字节跳动内部实践以及 Module Federation 原有社区生态,解决了原先版本中的诸多问题。

在字节跳动内部,基于 Modern.js 的框架已经与 Module Federation 2.0 进行了深度集成。我们正在逐步将这些功能集成到 Modern.js 中,希望与社区开发者共同探索未来。

INFO

参考 Module Federation 2.0 发布 获取更多相关内容。

Modern.js MF 插件

基于字节跳动内部实践,Module Federation 团队官方提供了 Modern.js 插件,帮助开发者更方便的使用 Module Federation。

插件会识别当前构建引擎(Webpack 或 Rspack),在 Modern.js 应用中注入 Module Federation 对应插件,并自动处理构建配置、添加运行时代码等。

同时,插件还支持在 Modern.js SSR 应用中使用 Module Federation,提供更好的性能体验。

详细内容可以参考 使用 Module FederationModule Federation 服务端渲染

应用维度模块

应用级别模块是具备应用的框架渲染能力及路由能力,能像应用一样运行的模块。应用级别模块是在微前端框架中非常重要的能力,提供跨应用框架(React、Vue)加载和渲染的能力,支持加载带路由的模块。

Module Federation 2.0 提供了 Bridge 的能力,用于加载应用级别模块。

Modern.js 基于 Brdige 和自身内部实现提供了 API,可以非常简单的导出应用级别模块。详细内容可以参考 应用级别模块