【发布时间】:2020-06-18 04:59:48
【问题描述】:
我正在尝试开发我的 Web Api (NET CORE) 可插件应用程序的前端。我想使用 Angular 9,但我不是 Angular 专家。
我的后端被设计为可扩展的,在启动时它会在指定的文件夹中监视,如果存在一个或多个包含扩展基本应用程序(如插件)的逻辑的 dll 文件,它会加载它们。 我想在前端使用类似的方法。我尝试了不同的解决方案并阅读了很多文章,但很难找到想要在编译时导入未知插件的人。
我尝试了惰性模块(从这个开始:https://www.mokkapps.de/blog/manually-lazy-load-modules-and-components-in-angular/),这将是完美的,但使用它我必须在编译我的 Angular 应用程序之前知道实现的插件(模块),因为如果我想使用模块,我必须使用 Import在我的主应用程序中运行。
所以我进行了更多搜索,在文章 Load new modules dynamically in run-time with Angular CLI & Angular 5 之后我尝试了 System.Js 方法,但我找不到 angular 9 的有效解决方案。
我很确定我不是唯一一个会创建一个可插入的 Angular 应用程序的人,该应用程序可以在不重新编译主应用程序的情况下加载插件。
我需要一些关于正确方法的建议或使用插件架构的 Angular 应用程序的工作示例。
【问题讨论】:
-
Angular 的可热插拔架构尚未广泛实现。只有在运行时导入的 angular 9 才使得构建这样的东西成为可能,而无需使用 hacky 解决方法。一些资源:brianflove.com/2019/12/13/lazy-load-angular-v9-components
-
@mamichels 感谢您提供有趣的链接。当用户显示方法 'loadModule(moduleInfo: ModuleData, ownerWindow?: any)' 时,我在 cmets 中为我的解决方案找到了一些有用的东西(我希望)......这给了我希望。
-
@mamichels提到的网址好像改成了brianflove.com/2019-12-13/lazy-load-angular-v9-components
标签: angular web-frontend plugin-architecture system.js