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

升级到 1.0.0-rc.1 后,子应用的 location 也被代理了,导致存量逻辑使用 location.origin、href 的地方都出问题了 #937

Closed
kelvin-lemon opened this issue Oct 24, 2023 · 13 comments
Assignees
Labels
feature Planned functions solved problem solved Virtual Router problem of virtual router

Comments

@kelvin-lemon
Copy link

kelvin-lemon commented Oct 24, 2023

背景

升级到 1.0.0-rc.1 后,子应用的 location 也被代理了,导致存量逻辑使用 location.origin、href 的地方都出问题了

期望的效果

是否有配置还原 loaction

@bailicangdu
Copy link
Member

vite应用吗

@bailicangdu bailicangdu added the Virtual Router problem of virtual router label Oct 24, 2023
@bailicangdu bailicangdu self-assigned this Oct 24, 2023
@kelvin-lemon
Copy link
Author

vite应用吗

不是 vite 应用,存量基于 webpack vue2 vue3,代码内之前有取 location.origin href 做上报以及跳转的逻辑,

升级到 1.0.0-rc.1 之前用的是 1.0.0-alpha.10 是正常的,

并且也禁用的虚拟路由: 'disable-memory-router': true, // 关闭虚拟路由系统; 'disable-patch-request': true, // 关闭对子应用请求的拦截

@jiaozhiye
Copy link

vite应用吗

不是 vite 应用,存量基于 webpack vue2 vue3,代码内之前有取 location.origin href 做上报以及跳转的逻辑,

升级到 1.0.0-rc.1 之前用的是 1.0.0-alpha.10 是正常的,

并且也禁用的虚拟路由: 'disable-memory-router': true, // 关闭虚拟路由系统; 'disable-patch-request': true, // 关闭对子应用请求的拦截

我们这边也发现这个问题了,被代理的属性和之前不一样了,多了好多!

@bailicangdu
Copy link
Member

@kelvin-lemon @jiaozhiye 能贴一下 location.origin href 相关代码吗,方便我们定位和解决问题

@bailicangdu bailicangdu added the bug Something isn't working label Oct 25, 2023
@kelvin-lemon
Copy link
Author

kelvin-lemon commented Oct 25, 2023

@kelvin-lemon @jiaozhiye 能贴一下 location.origin href 相关代码吗,方便我们定位和解决问题

image

最新的 micro app 版本,默认配置就可以复现。可以看这个demo代码:
micro-demo.zip
@bailicangdu

@kelvin-lemon
Copy link
Author

kelvin-lemon commented Oct 26, 2023

image
看了下现在创建沙盒的逻辑里,createMicroLocation 是必须的步骤,根据子应用的 URL 创建了 location,在子应用内获取和之前就不一样了,实际还是希望获取到主应用的 location,否则存量逻辑就要全部检查一遍了

@bailicangdu

@bailicangdu bailicangdu added the discussion discuss label Oct 26, 2023
@bailicangdu
Copy link
Member

了解你的意思,目前我们是完全模拟子应用单独运行的环境,但像你这样的location指向主应用的场景也存在,两种方式各有优缺点,我们会考虑一下最终选择那种方案

@kelvin-lemon
Copy link
Author

了解你的意思,目前我们是完全模拟子应用单独运行的环境,但像你这样的location指向主应用的场景也存在,两种方式各有优缺点,我们会考虑一下最终选择那种方案

或者可以支持配置,现在这个逻辑下子应用内的逻辑还可以适配一下,如果有些外部依赖库例如上报这些 也有使用 location 的场景 就不太好适配

@bailicangdu
Copy link
Member

了解你的意思,目前我们是完全模拟子应用单独运行的环境,但像你这样的location指向主应用的场景也存在,两种方式各有优缺点,我们会考虑一下最终选择那种方案

或者可以支持配置,现在这个逻辑下子应用内的逻辑还可以适配一下,如果有些外部依赖库例如上报这些 也有使用 location 的场景 就不太好适配

了解,我们会考虑一下

@bailicangdu bailicangdu added feature Planned functions and removed bug Something isn't working discussion discuss labels Oct 27, 2023
@jiaozhiye
Copy link

了解你的意思,目前我们是完全模拟子应用单独运行的环境,但像你这样的location指向主应用的场景也存在,两种方式各有优缺点,我们会考虑一下最终选择那种方案

或者可以支持配置,现在这个逻辑下子应用内的逻辑还可以适配一下,如果有些外部依赖库例如上报这些 也有使用 location 的场景 就不太好适配

了解,我们会考虑一下

子应用 location 被代理,给我们各项目组确实造成很大影响,都得去改动代码,咱官方能在下个版本修复一下吗,感谢!

@matinary
Copy link

matinary commented Dec 8, 2023

感觉子应用location 默认指向子应用是合理的,但是也存在location指向主应用的场景,可以去添加配置或者其他对象来处理这种场景

@Vibing
Copy link

Vibing commented Dec 15, 2023

我觉得这种改变应该默认向下兼容,且给出配置,后面大点的版本更新再破坏,然后在版本升级文档上体现。

@bailicangdu
Copy link
Member

问题已修复,升级到1.0.0-rc.4版本即可

@bailicangdu bailicangdu added solved problem solved and removed TODO labels Jan 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Planned functions solved problem solved Virtual Router problem of virtual router
Projects
None yet
Development

No branches or pull requests

5 participants