1

私はAngularでシングルスパを使用しています。サブアプリケーションに遅延ロードされたモジュールがある場合、シェルとサブアプリケーションがあります。これらのルートはすべて遅延ロードされたルートです。single-spa と single-spa webpack 構成を使用せずにアプリケーションを提供すると、これは正常に機能します。しかし、プロダクション モードと aot でアプリケーションをビルドすると、その URL に移動すると、SubModule から SuperSubModule への遅延ロード ルートでエラーが発生します。エラーは次のとおりです。

エラー エラー: Uncaught (in promise): TypeError: Cannot read property 'call' of undefined TypeError: Cannot read property 'call' of undefined at o (bootstrap:63) at ZoneDelegate.invoke (zone.js:396) at Object. onInvoke (main.js:1) で ZoneDelegate.invoke (zone.js:395) で Object.onInvoke (core.js:39699) で ZoneDelegate.invoke (zone.js:395) で Zone.run (zone.js: 153) zone.js:894 で ZoneDelegate.invokeTask (zone.js:431) で Object.onInvokeTask (main.js:1) で resolvePromise (zone.js:836) で resolvePromise (zone.js:795) でゾーン.js:897 で ZoneDelegate.invokeTask (zone.js:431) で Object.onInvokeTask (main.js:1) で ZoneDelegate.invokeTask (zone.js:430) で Object.onInvokeTask (core.js:39680) で ZoneDelegate .invokeTask (zone.js:430) zone.runTask (zone.js:198) で、drainMicroTaskQueue (zone.js:611) で

そのモジュールへの URL をもう一度クリックすると、次のエラーが表示されます。

エラー: 「未定義」の NgModule メタデータが見つかりません。lg.resolve (compiler.js:20900) で Th.getNgModuleMetadata (compiler.js:20029) で Jg._loadModules (compiler.js:25824) で Jg._compileModuleAndComponents (compiler.js:25807) で Jg.compileModuleAsync (compiler .js:25769) で useClass.compileModuleAsync (platform-b​​rowser-dynamic.js:223) で c.project (router.js:6406) で c._tryNext (mergeMap.js:46) で c._next (mergeMap.js) で:36) c.next (Subscriber.js:50) で resolvePromise (zone.js:836) で resolvePromise (zone.js:795) で zone.js:897 で ZoneDelegate.invokeTask (zone.js:431) でObject.onInvokeTask (main.js:1) で ZoneDelegate.invokeTask (zone.js:430) で Object.onInvokeTask (core.js:39680) で ZoneDelegate.invokeTask (zone.js:430) で Zone。

これを修正する方法を知っている人はいますか?フィードバックは大歓迎です。私はこの問題に何日も悩まされています。前もって感謝します!編集: これは、プロダクション モードでシングル スパが使用されている場合にのみ発生し、プロダクション モードでスタンドアロンで提供される場合には発生しません。

4

1 に答える 1

0

回答は、single-spa の FAQ にあります: https://single-spa.js.org/docs/faq/#code-splits 機能させるには、解決策 1 と 2 を実行する必要があります。

于 2020-03-06T10:38:37.340 に答える