什么是 Module Federation(模块联邦)?解决什么问题?

Module Federation 是 Webpack5 的特性,让多个独立构建的应用在运行时互相加载对方导出的模块,实现「运行时共享代码」,是微前端的主流方案之一。

// app1 (remote)
new ModuleFederationPlugin({
  name: 'app1',
  filename: 'remoteEntry.js',
  exposes: { './Button': './src/Button' }
})
// app2 (host) 远程消费
remotes: { app1: 'app1@https://app1.com/remoteEntry.js' }
import Button from 'app1/Button'  // 运行时从 app1 拉取

解决的问题:

注意:版本/运行时一致性需治理;Vite 生态有 vite-plugin-federation 提供类似能力。

同分类其他题目