Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

沙箱模式下第三方依赖(echarts)需要用到主应用挂载在window上的方法出现问题。目前发现的是instanceof Array无法正确判定 #1400

Closed
qianfeii opened this issue Oct 9, 2024 · 10 comments
Assignees
Labels
fixed Issue fixed Need Reproduction 需要复现步骤

Comments

@qianfeii
Copy link

qianfeii commented Oct 9, 2024

问题描述

使用echarts时无法正确判断series导致无法渲染报错。
主要问题出在沙箱模式下进行instanceof Array 无法判定到true的结果。导致报错。
需要想办法让 instanceof 比较到全局的array,或者覆盖instanceof 有什么办法。或者给覆盖的方法结果 加上个 Array.is()
当然 也不排除依赖内有没有其他需要用到主项目window内方法的

// 执行setOption后报错
chartInstance = echarts.init(chartRef.value);
chartInstance.setOption(props.options);

报错
image

尝试过覆盖子项目 window.array。但是创建对象不能保证不使用 [] 都使用 new Array。没有成功

window.Array = window.rawWindow.Array;

复现步骤

创建子项目 简单实例化echarts。
主项目使用vue3 + vite,沙箱模式加载子项目。

上传截图

请上传代码截图、控制台、终端等截图以帮助我们了解您的问题。

复现仓库

请提供一个精简的代码仓库,然后上传到自己的 github,以帮助我们复现您的问题。
image

会执行到micro-app 沙箱内的方法
image

环境信息

  • micro-app版本:^1.0.0-rc.12
  • 主应用前端框架&版本:vue 2.6.11 @vue/cli-service 4.5.19 webpack 4.47.0
  • 子应用前端框架&版本:vue 3.4.29 echarts 5.5.1
  • 构建工具&版本:vite 5.3.1
@qianfeii
Copy link
Author

qianfeii commented Oct 9, 2024

node_modules@micro-zoe\micro-app\lib\index.esm.js 5700行修改如下可以解决问题
image

@Agarics
Copy link

Agarics commented Oct 10, 2024

同样的问题+1

@timhub66 timhub66 self-assigned this Oct 10, 2024
@timhub66 timhub66 added the Need Reproduction 需要复现步骤 label Oct 10, 2024
Copy link

Hello @qianfeii. In order to facilitate location and troubleshooting, we need you to provide a realistic GitHub repository.
您好 @qianfeii, 为了方便定位和排查问题,我们需要您提供一个重现实例,请提供一个尽可能精简的 GitHub 仓库地址。

@1169938246
Copy link

同样的问题 +1

@c-guozi
Copy link

c-guozi commented Oct 11, 2024

上面 node_modules@micro-zoe\micro-app\lib\index.esm.js 5700行修改后 仍然没有解决问题 @qianfeii ,可以详细看一下全部修改后的样子吗

@1169938246
Copy link

上面node_modules@micro-zoe\micro-app\lib\index.esm.js 5700行修改后仍然没有解决问题@qianfeii修改一下,可以详细看一下全部后面的样子吗

想暂时解决问题就把 微应用版本:1.0.0-rc.10 改成12以下的固定版本 先暂时使用吧,后续人家修复了再更新

@an501920078
Copy link

我也是,在rc.12版本中子系统使用obj[key] instanceof Array 始终返回为false,这个BUG很严重

@XiaoDan12202
Copy link

+1

@timhub66
Copy link
Member

1.0.0-rc.13 已修复

@timhub66 timhub66 added the fixed Issue fixed label Oct 16, 2024
Copy link

Hello @qianfeii. The issue you reported has been fixed. This issue will be closed. Thank you for your feedback.
您好 @qianfeii,您反馈的问题已修复,该 issue 将要被关闭,感谢反馈。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fixed Issue fixed Need Reproduction 需要复现步骤
Projects
None yet
Development

No branches or pull requests

7 participants