umi
umi copied to clipboard
feat(plugins/qiankun): 支持 qiankun 本地研发
在 plugin-qiankun 里有过实践的能力,迁移到 umi@4 并做了一些修改 主要思路为:
- 当 config.qiankun.slave.masterEntry 有配置时,增加一个代理中间件,将非 /local-dev-server 的请求代理为 target masterEntry
- 获取到 html 后,再检查是否为 qiankun 主应用(config.qiankun.master.enable 为 true),如果是则替换资源到本地
The latest updates on your projects. Learn more about Vercel for Git ↗︎
1 Ignored Deployment
| Name | Status | Preview | Updated |
|---|---|---|---|
| umi | ⬜️ Ignored (Inspect) | Aug 24, 2022 at 11:54AM (UTC) |
请再补充下背景,
1、解什么问题,举一个实际的场景 2、plugin-qiankun 的 PR 或代码贴下
请再补充下背景,
1、解什么问题,举一个实际的场景 2、plugin-qiankun 的 PR 或代码贴下
1、解决的问题:
- 目前主要是对内的燕鸥在消费,期望的是微前端本地研发时,本地起的站点效果能与 dev 部署的效果一致,内网文档我钉钉同步老师
- 针对 qiankun 来说,如果微前端子应用在本地研发时,需要在主应用的「壳」下加载子应用,支持通过配置 masterEntry 的形式去加载 entry html,再把子应用挂载上去
- 另外还有一个场景是,微前端主应用在部署环境中的 entry html 是处理过的(比如对内燕鸥基座的操作),本地研发时也需要去加载一个指定的 entry html 去模拟部署环境下 entry html 被处理后的效果
- qiankun 的一个实际场景: 「1」我有一个主应用 a,子应用 b,子应用 b 是在主应用 a 的 layout 中加载的 「2」 本地研发时,配置前:本地起的服务只能看到子应用自己的内容;配置后:本地起的服务能看到子应用嵌入主应用后的效果
2、plugin-qiankun 的代码
- 参见 https://github.com/umijs/plugins/blob/master/packages/plugin-qiankun/src/slave/index.ts#L219
- 同时还有一个 pr 去支持上述提到的主应用本地研发:https://github.com/umijs/plugins/pull/891
等 https://github.com/umijs/plugins/pull/891 合了再合这个。
plugin-qiankun 那个 pr 已合,另外根据建议本次 pr 取消掉了主应用资源替换部分的内容,后续会放到 bigfish 插件中完成