【问题标题】:SystemJsNgModuleLoader.load() fails with "Cannot find module"SystemJsNgModuleLoader.load() 因“找不到模块”而失败
【发布时间】:2019-01-21 09:06:01
【问题描述】:

在我的 Angular 6 应用程序中,我尝试使用 SystemJsNgModuleLoader.load() 动态加载模块,但它总是失败并出现“找不到模块”错误。

This small sample program on GitHub 重现了该问题。它只不过是一个新的 Angular-CLI 生成的项目,带有一个我尝试动态加载的附加模块。它在控制台中失败并显示以下错误消息:

错误:未捕获(承诺):错误:找不到模块“src/app/lazy/lazy.module”。

这里出了什么问题?


注意:我之前试图在StackBlitz 上重现该问题。但是,由于错误消息略有不同,因此具有误导性:

错误:未捕获(承诺中):错误:在“app/lazy/lazy.module”中找不到“LazyModule”

结果证明(感谢 Cam Plimsoll)我只是在该示例中使用了错误的路径。

【问题讨论】:

  • 这些看起来相似,但我相信它们是非常不同的错误。
  • 也许你是对的。但我仍然希望知道玩具示例的问题将帮助我了解为什么我的实际应用程序无法正常工作。

标签: angular angular-cli systemjs


【解决方案1】:

从sourceRoot开始的路径加载模块

this.loader.load('src/app/lazy/lazy.module#LazyModule').then(module=>{     
      //handle the logic of inserting your component
    });

【讨论】:

  • 感谢您的回复!这确实修复了我的 StackBlitz 示例。但在我的真实应用程序中,这并不能解决问题(请记住,错误消息看起来略有不同)。因此,我在 GitHub 上创建了一个新的最小示例程序,它使用与我的实际应用程序中完全相同的错误消息重现问题 - 请参阅我更新的问题。
猜你喜欢
  • 2020-05-31
  • 2016-11-13
  • 2018-04-23
  • 1970-01-01
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多