Medule Federation

模块联邦:多个应用,可以共享一个模块(本地可以调用远程)
模块提供方:
name: 当前应用名称(供调用方使用)
filename: 打包后的文件名称(供调用方使用)
exposes: 暴露模块 (相当与export导出)
模块名称:模块文件路径

模块使用方:
remote: 导入模块(相当于import)
导入后的别名:"远程应用名称@远程地址/远程导出文件名"
import: ("导入后的别名/模块名称").then(//...)
引入模块联邦插件
const Mfp = require('webpack').container.ModuleFederationPlugin
// 模块提供方
new Mfp({
   // 应用名称(供使用方调用)
   name: 'app1',
   // 调用方引用的文件名称
   filename: 'app1.js',
   // 暴露模块
   exposes: {
       // 模块名称: 模块对应代码路径
       './Sitename': './src/Sitename.js'
   }
})
// 模块使用方
new Mfp({
// 导入模块
remotes: {
// 导入别名: "远程应用名称@远程应用地址/远程导出文件的名称"
appone: "app1@http://localhost:3001/app1.js"
}

})
 // 共享公共
shared: { react: { singleton: true }, "react-dom": { singleton: true } },