一、 为什么我们需要微前端?

在 Module Federation 出现之前,前端项目变大后通常面临“巨石应用(Monolith)”的困境:

  1. 构建慢:改一行代码,打包几分钟。
  2. 部署难:一个模块的 Bug 导致整个系统回滚。
  3. 技术栈锁死:想在一个 React 15 的老项目里用 Vue 3 或 React 18,几乎不可能。

微前端的核心思想就是:将一个超级 App 拆分成多个独立的微应用,它们可以独立开发、独立部署,但在用户看来是一个整体。

二、 什么是 Module Federation?

在 Webpack 5 之前,微前端的主流方案是 qiankun(基于 single-spa,基座模式)或 iframe

Module Federation (MF) 是 Webpack 5 引入的革命性功能。 它允许一个 JavaScript 应用在运行时动态加载另一个应用的代码。

三、 技术实践:如何落地?

假设我们有两个应用:

  1. App 1 (Host/Consumer): 主应用,负责布局。

四、 导师视角的“深水区”注意事项

配置跑通只是第一步,真正的挑战在于治理。以下是我在实际项目中总结的经验:

1. 依赖共享的地狱 (Shared Dependencies)