首页 > 解决方案 > 通过 SystemJS 导入子 Angular 应用程序时找不到模块错误

问题描述

我正在尝试使用 single-spa 将另一个角度应用程序添加到我的容器应用程序中。

作为一个模板,我在 GitHub 上查看了这个repo 。

现在出现以下问题:

在应用程序加载服务中,以下行尝试使用 systemjs 加载应用程序并通过 single-spa 安装它

mount(appName: string, domElement: HTMLElement): Observable<unknown> {
    return from(System.import<ParcelConfig>(appName)).pipe(
      tap((app: ParcelConfig) => {
        this.loadedParcels[appName] = mountRootParcel(app, {
          domElement
        });
      })
    );
  }

在 import-map 概述中,您还可以看到所有内容都已正确导入:

导入地图概览中的图像

当模块在 Angular 中加载时,现在会显示以下错误:

Error: Cannot find module 'child1'
    at 6.js:1
    at l.invoke (polyfills.js:1)
    at Object.onInvoke (main.js:1)
    at l.invoke (polyfills.js:1)
    at a.run (polyfills.js:1)
    at polyfills.js:1
    at l.invokeTask (polyfills.js:1)
    at Object.onInvokeTask (main.js:1)
    at l.invokeTask (polyfills.js:1)
    at a.runTask (polyfills.js:1)

但是,当我想通过 SystemJS 在 javascript 控制台中加载外部角度页面时,它可以正常工作,并且我可以正确恢复单水疗生命周期方法:

命令:

await System.import('child1');

结果:

Module {default: Module, __useDefault: true, bootstrap: ƒ, mount: ƒ, unmount: ƒ, …}
bootstrap: ƒ ()
default: Module {__esModule: true, Symbol(Symbol.toStringTag): "Module"}
mount: ƒ ()
unmount: ƒ ()
__esModule: true
__useDefault: true

有谁知道问题是什么?

标签: angularsystemjssingle-spasingle-spa-angular

解决方案


推荐阅读