alibaba / lowcode-engine

An enterprise-class low-code technology stack with scale-out design / 一套面向扩展设计的企业级低代码技术体系
https://lowcode-engine.cn
MIT License
14.66k stars 2.55k forks source link

qiankun如何集成lowcode-demo #543

Open dj49846917 opened 2 years ago

dj49846917 commented 2 years ago

请问qiankun微前端框架如何去集成lowcode-demo这个工程,求大佬指导下

github-actions[bot] commented 2 years ago

Hello @dj49846917. We totally like your proposal/feedback, PR wanted。

你好 @dj49846917,我们完全同意你的提议/反馈,欢迎 PR。

f2elab commented 2 years ago

作为子应用吗?可以直接导出声明周期试试看,qiankun子应用不限制框架接入,除个别场景需要调整。

leehomeok commented 2 years ago

可以在基座通过子应用的方式去加载 lowcode-demo, 也可以在子应用嵌套子应用加载

jingjingzhao commented 2 years ago

可以在基座通过子应用的方式去加载 lowcode-demo, 也可以在子应用嵌套子应用加载

lowcode-demo作为子应用加载时,遇到 找不到window上定义的全局变量React等,你是怎么解决的啊? image

zhangxiangqiang commented 2 years ago

这个低代码引擎作为子应用接入qiankun, 确实会报一堆错误让人莫不着头脑,主应用用的react, 按照乾坤文档接入,发现了和上面类似的错误,低代码引擎界面出来了,内容区一直loading着

image image
jingjingzhao commented 2 years ago

我找到了hack的解决方法。 在主应用中引入子应用(lowcode-demo)的cdn包,主引用会将这些变量挂载到window上。具体原因见这个issue中的3楼 image

ajl512 commented 2 years ago

image 乾坤嵌入后,engine-core.js中调用getPublicPath得到的路径为空''; 查找源码后, 发现

const publicPath = (document.currentScript as HTMLScriptElement)?.src.replace(/^(.*\/)[^/]+$/, '$1');

export function getPublicPath(): string {
  return publicPath || '';
}

找到一个相关的解释 image

我想知道各位在做乾坤嵌入时没有出现这个问题吗

haledeng commented 2 years ago

image 乾坤嵌入后,engine-core.js中调用getPublicPath得到的路径为空''; 查找源码后, 发现

const publicPath = (document.currentScript as HTMLScriptElement)?.src.replace(/^(.*\/)[^/]+$/, '$1');

export function getPublicPath(): string {
  return publicPath || '';
}

找到一个相关的解释 image

我想知道各位在做乾坤嵌入时没有出现这个问题吗

Same Problem. Any ideas ?

Dawei921 commented 1 year ago

我找到了hack的解决方法。 在主应用中引入子应用(lowcode-demo)的cdn包,主引用会将这些变量挂载到window上。具体原因见这个issue中的3楼 image

遇到了和你一样的问题,在主应用中引入了子应用(lowcode-demo)的cdn包还是不行,可以看下你的主应用的externals和子应用的externals配置吗 @jingjingzhao

xyouZone commented 1 year ago

我找到了hack的解决方法。 在主应用中引入子应用(lowcode-demo)的cdn包,主引用会将这些变量挂载到window上。具体原因见这个issue中的3楼 image

遇到了和你一样的问题,在主应用中引入了子应用(lowcode-demo)的cdn包还是不行,可以看下你的主应用的externals和子应用的externals配置吗 @jingjingzhao

还要在子应用中的script里添加ignore image

aceHubert commented 1 year ago

主应用启用沙箱后对象都挂载在了FakeWindow上,设计器中使用iframe 加载没有被qiankun劫持所以拿window.parent拿不到 Proxy 对象,可以通过environment 或 extraEnvironment 去设置环境 image 5d2d1577-8f5d-42ef-b404-5cb83ba3f25e

WHSnhcZDYRZC commented 4 months ago

可以去看下这个库的解决方案哦 https://github.com/WHSnhcZDYRZC/umi4-lowcode-engine-solutions