我正在使用 webpack5 和 CLI11 开发模块联合原型,主要如下所述:https://www.angulararchitects.io/aktuelles/the-microfrontend-revolution-part-2-module-federation-with-angular/.
基本上,我有一个主机应用程序,它从页面 b 加载共享模块。那么该共享模块应该在主机中使用。它设置了一个RouterModule.forChild()
并通过 webpack 公开共享。到目前为止,这有效。
现在我添加了我们的一个组件,它在内部使用动画,但事情正在崩溃。使用 BrowserAnimationsModule 或任何与平台相关的模块(例如 BrowserModule 或 NoopAnimationsModule 本身)导入到我的共享模块中,主机应用程序将不再工作。
每次我导航到路由器时,路由器都会将我的共享内容的新副本添加到另一个副本下面。我假设它每次加载模块时都会创建一个新平台,但我怎样才能防止这种情况发生呢?
我还尝试在应用程序和主机之间共享@angular/platform-browser/animations,但没有运气。
我知道 webpack 5 不是当前 CLI 的官方部分,但我想知道是否有人已经偶然发现了这一点。我认为这作为一个用例并不少见。
我已经设置了一个存储库来重现该问题:https://github.com/paad/module-federation
它已经是一个已知问题了吗?
也许有人有建议?
我有同样的问题,但成功解决了。
Add "@angular/animations": {singleton: true, eager: true}
到 Shell 和遥控器的共享块。
你不需要导入BrowserAnimationsModule
or NoopAnimationsModules
除了 AppModule 之外。另外,没有必要分享@angular/platform-browser/animations
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)