微前端 架构不同于传统单体应用的开发模式,其分开开发、部署、调试的特征使其需要一套新的调试工具来满足新的使用场景,诸如:在开发 Module Federation 时怎么验证模块在实际项目中的效果、 Module Federation 的依赖是否和宿主环境进行了复用、当前页面加载了哪些 Module Federation , Module Federation 的依赖关系、Module Federation 间的数据流转是怎么样的。
Chrome Devtool 提供了以下能力:
Module Federation 代理功能,将线上页面中的Module Federation代理到用户本地的Module FederationModule Federation版本,来进行快速的功能验证必须使用 mf-manifest.json 才可以使用 Chrome devtool 提供的可视化和代理能力
DevTools 提供了多个功能面板,适用于开发环境以及生产环境的不同调试需求:
Proxy (代理):用于将线上或测试环境的模块代理到本地开发环境。
http://localhost:3000/mf-manifest.json,页面将直接加载 3000 端口的 Module Federation 内容。mf-manifest.json 文件地址形式,例如:key: appA -> value: https://xxx/static/mf-manifest.json, 页面将直接加载指定地址的 Module Federation 内容。Module Info (模块信息):用于查看当前页面加载的所有 Federation 模块的详细信息,包括版本、入口地址等。
Dependency Graph (依赖关系图):以可视化的方式展示模块之间的依赖引用关系,帮助理清复杂的微前端架构。
Shared (共享依赖):深入分析 Shared Dependencies 的使用情况。

添加到 Chrome 按钮
插件提供了 Devtools 面板
Module Federation tab,进入代理页面,便可对依赖的模块进行代理调试

如下图所示,代理页面上提供了 add new proxy module、producer selector、 version or local port or custom entry 等选项操作。
producer selector 选择出目标页面需要代理的一个模块;version or local port 选择或者输入指定的地址(包括端口号和 mf-manifest.json 结尾的地址),进行代理操作;add new proxy module 区域,增加对应的代理模块。


不支持同一域名多个 Tab 同时调试
支持,当你同时打开多个标签页(Tabs)进行调试时,Chrome DevTool 插件会自动识别当前的活动 Tab,并隔离存储每个 Tab 的代理规则。
插件会筛选出符合配置规则的模块进行代理