icestark icon indicating copy to clipboard operation
icestark copied to clipboard

手动执行 createMicroApp 会移移除主应用样式表

Open maoxiaoke opened this issue 4 years ago • 4 comments

在 Icestark 中,对 css 的处理是通过创建 <link /> 并插入到 DOM 中,并在微应用卸载的时候进行移除。这导致主应用在进行 dynamic import 时的一些处理,未被 icestark 标记到,从而被移除。

maoxiaoke avatar Mar 18 '21 11:03 maoxiaoke

1.x 也有这个问题

maoxiaoke avatar Mar 19 '21 02:03 maoxiaoke

这个问题有解决办法吗?现在的版本还有问题

lvren avatar Jul 26 '21 11:07 lvren

@lvren 这里的问题比较困难的点在于,无法对区分 dynamic import 加载的资源的类别。目前,还是可以提供 shouldAssetsRemove 这个参数来不移除主应用的 dynamic import 的资源。比如主应用 dynamic import 资源为:

https://g.alicdn.com/framework/index.js
https://g.alicdn.com/framework/0.js
https://g.alicdn.com/framework/1.js

则该字段可进行如下配置:

{
    shouldassetsremove: ( url) => {
        if (url.includes('framework')) {
         return false
      }
    }
}

maoxiaoke avatar Jul 27 '21 02:07 maoxiaoke

好的,我试试,昨天没有注意到这个参数。 我是手动导出了 recordAssets 这个函数,在每次进入子应用的前调用了一下

lvren avatar Jul 27 '21 02:07 lvren