当前位置: 首页 > ai >正文

Webpack 5 Module Federation 模块共享最佳实践

🌐 Webpack 5 Module Federation 模块共享最佳实践

🧬 模块共享是微前端架构中最难啃的一块骨头。Webpack 5 引入的 Module Federation,为模块跨项目共享带来了原生支持。本文将手把手带你走通「多个独立项目之间共享组件 / 工具库」的完整实践路径。


🎯 什么是 Module Federation?

Module Federation 是 Webpack 5 新增的一项特性,允许多个独立构建的应用之间共享代码(模块),实现“在运行时加载远程模块”。

它解决了什么问题?

传统方式 问题
NPM 包共享 每次改动都要重新构建 + 发包
CDN 引入 缺乏依赖管理与模块边界
iframe 嵌套 用户体验差,通信复杂

Module Federation 是“运行时模块共享的终极解决方案”。


🧱 应用场景有哪些?

  • 微前端架构中的子应用共享公共组件库
  • 多系统间共用一个业务组件(如表单引擎)
  • 将设计系统作为远程模块在多个项目中使用
  • 在不升级主项目的情况下动态接入新模块

⚙️ 基本原理图示

[App A]                            [App B]
webpack.config.js                 webpack.config.jsexposes: {                       remotes: {'./Header': './Header.js'        'AppA': 'AppA@http://localhost:3001/remoteEntry.js'}                                }

App A 暴露模块(expose),App B 远程加载模块(remote),两者通过 runtime 交互。


🛠 实战:两项目共享组件

🎬 准备两个项目

my-project/
├── host-app/     # 主应用
├── remote-app/   # 被共享模块的远程应用

使用 Vite/CRA/Vue CLI 也可,但推荐用 Webpack 搭配更方便。


📦 remote-app 配置(暴露模块)

// remote-app/webpack.config.js
new ModuleFederationPlugin({name<
http://www.xdnf.cn/news/17020.html

相关文章:

  • 【学习笔记】FTP库函数学习
  • 基于铁头山羊STM32的平衡车电机转速开环闭环matlab仿真
  • [Linux]学习笔记系列 -- [arm]boot
  • 如何在 FastAPI 中优雅处理后台任务异常并实现智能重试?
  • Anthropic的商业模式与战略
  • 如何基于MQ实现分布式事务
  • 电子电气架构 ---智能电动汽车嵌入式软件开发过程中的block点
  • PostgreSQL——数据类型和运算符
  • 深度残差网络ResNet结构
  • 《Leetcode》-面试题-hot100-子串
  • 【unitrix】 7.1 二进制位加法(bit_add.rs)
  • 规则方法关系抽取-笔记总结
  • 县级融媒体中心备份与恢复策略(精简版3-2-1架构)
  • 文件包含篇
  • 秋招笔记-8.4
  • Java基础学习(一):类名规范、返回值、注释、数据类型
  • C++面试题及详细答案100道( 01-10 )
  • 【数据结构】排序(sort) -- 插入排序
  • 【深度学习新浪潮】近三年城市级数字孪生的研究进展一览
  • 【数据结构入门】链表
  • Vue3核心语法进阶(生命周期)
  • 【教学类-52-17】20250803动物数独_空格尽量分散_只有一半关卡数(N宫格通用版3-10宫格)0图、1图、2图、6图、有答案、无答案 组合版24套
  • 华为OD机考2025C卷 - 分配土地 (Java Python JS C++ C )
  • 【Spring AI快速上手 (二)】Advisor实现对话上下文管理
  • 体验Java接入langchain4j运用大模型OpenAi
  • 30天入门Python(基础篇)——第31天:标准库学习之re模块
  • 如何给Word和WPS文档添加密码或取消密码
  • 【回眸】香橙派zero2 阿里云机器视觉分拣系统
  • odoo reportbro 拖拽式报表设计
  • 广东省省考备考(第六十六天8.4)——言语、常识(强化训练)