# webpack的模块联邦
# 原理浅析
- 下载并执行 remoteEntry.js,挂载入口点对象到 window.app1,他有两个函数属性,init 和 get。init 方法用于初始化作用域对象 initScope,get 方法用于下载 moduleMap 中导出的远程模块。
- 加载 app1 到本地模块
- 创建 app1.init 的执行环境,收集依赖到共享作用域对象 shareScope
- 执行 app1.init,初始化 initScope
- 用户 import 远程模块时调用 app1.get(moduleName) 通过 Jsonp 懒加载远程模块,然后缓存在全局对象 window['webpackChunk' + appName]
- 通过 webpack_require 读取缓存中的模块,执行用户回调