为了动态加载fm,我使用了类似于以下的逻辑:
https://github.com/module-federation/module-federation-examples/blob/master/dynamic-system-host/app1/src/App.js L16
然而,假设FM的远程版本发生了变化,我想要整个重新加载它,或者从我的应用程序上下文中完全删除它——这可能吗?
我也在调查这个问题。但是,请查看module-federation-examples/dynamic-system-host中的示例。这个例子是什么?
- app1作为主机应用程序,有两个按钮
- app2带有一个导出
./Widgets
的模块 - app3与另一个模块导出
./Widgets
,也 - 在app1中点击第一个按钮加载模块"/Widgets"从app2
- 在app1中点击第二个按钮加载模块"/Widgets"从app3
您可以无休止地在实现之间切换。这证明了你可以动态地覆盖一个模块。
如何重新加载相同的模块现在?
将上面的app1与模块URL:?version=:TIMESTAMP:
上的缓存buster结合起来。这应该在理论上重新加载相同的模块,因为URL是不同的。