yiludege

Results 85 comments of yiludege

大部分没有这个网关分配的条件,所以实现一个空白的、同域的、浏览器前进后退可以生效的 iframe还是非常的费劲 不过在主应用的 head 插入一个`if(window.__power_by_xxx__) window.stop()`这样的标签应该可以避免污染?

好问题,在无界微前端中子应用代码运行在闭包内 为什么要在闭包内执行代码? 为了劫持修改 window.location,因为 location 的 configuable 为 false, 所以只能这样闭包解决 ```javascript code = `(function(window, self, global, location) { ${code} }).bind(window.__WUJIE.proxy)( window.__WUJIE.proxy, window.__WUJIE.proxy, window.__WUJIE.proxy, window.__WUJIE.proxyLocation, );`; ``` 想知道 window.location 修改了啥,可以看看 window.__WUJIE.proxyLocation...

> 为什么不用一个闭包,要为每个script创建一个闭包 - 因为无界是边下载边执行的,fiber模式下,每个js文件都包裹在一个requestIdleCallback里面运行,如果要用一个闭包,那就需要先统一将所有js下载下来,然后再一个闭包内执行,效率太慢 - 异步js文件也还是没有办法塞到这个闭包内执行 另外,如果不想js代码在闭包内执行可以 使用 jsIgnores plugin 来实现了

对于 vue 和 react 我们内部有大量的项目验证,包括h5都有上线的项目,但是对于 angular 确实没有经过大量验证 不过无界的适配成本非常低,如果子应用允许跨域,你可以简单的``就可以验证项目是否OK了

todo-list,现在可以查看 pr 和 git commit 查看

这是一个很好的问题,目前也是无界的一个无法解决的点。 1、子应用需要一个 空白的、同域的、浏览器前进后退可以生效的 iframe 作为沙箱。 2、无界采用直接加载 iframe src 等于主应用 host 的地址,然后等 window.location 初始化成主应用域名后(为了子应用路由 window.history.pushState 可以正常工作)后立即停止iframe的加载,此时子应用跳转路由后点击浏览器后退也可以生效到子应用 3、但是在等待 location origin 初始化的过程中有可能加载了主应用 host 地址的 html,然后运行了这个地址内的部分代码,在 safari 浏览器中尤其明显: - iframe 加载主应用 host 以及资源 ![image](https://user-images.githubusercontent.com/19788268/184302000-8ecc10b7-9db2-4fcc-9417-bf7487f4d2ef.png)...

我的电脑上没有安装window,但是在 [can i use](https://caniuse.com/?search=EventTarget) 里面看到这个EventTarget是可以用的呀

我本地重新 clone 运行没有问题,注意运行 demo 的脚本 ```bash npm i // 安装包依赖 npx husky install // Enable Git hooks npm i -g lerna // 安装 lerna lerna bootstrap // 安装所有子应用包依赖 npm run...

这些命令是直接在 wujie 目录下运行,不用单独到 example 内去运行

和 lerna 的版本无关,安装 vue2 的依赖报错了,看看是什么错误,node的版本是什么呢?