Module Federation
Webpack 5的特性
——设计动机是为了能够让不同的团队协作开发一个或者多个应用
——将一个应用拆分并导出不同的模块,并且模块依赖的底层三方库,同样能够被共享。借助这个能力我们可以为应用提前构建一个公共依赖,来减少编译内容和打包体积
——实现:将所有的三方依赖都作为 remote 依赖引入,步骤:
首先通过 exposes 能力,将项目运行时依赖去全部导出,并完成 remoteEntry 和相关 remote 模块的构建
项目开启 MF 能力,并依赖已构建好的 remote
将项目中运行时依赖通过 babel 能力转化为 remote 模块加载模式,即 import xx from {expose} 的形式
参考:面对 ESM 的开发模式,webpack 还有还手之力吗?