Angular 6-库中的AOT编译将在主应用程序中用作延迟加载的插件

时间:2018-08-25 09:40:41

标签: angular webpack angular-aot angular-compiler ngtools

我正在Angular 6中完成一个基于插件的应用程序。我有2个项目,一个主项目和一个lib项目,我将在这些项目中开发插件。使用ng build --prod将插件构建到UMD中,然后使用SystemJs将其加载到主应用程序中,然后在运行时使用Compiler类对其进行编译(已构建的插件部署在另一台服务器上)。主应用程序在构建时没有引用lib项目。

只要我在开发人员模式下运行主应用程序,这就可以正常工作。当我在产品中尝试时,由于JIT编译器在产品构建中被删除的事实而崩溃,并显示“错误:运行时编译器未加载”。

我的问题是:是否可以提前构建Angular 6 Cli Lib项目(或不一定是cli lib项目),并用SystemJs加载它,然后仅使用组件工厂进行动态组件创建?我该怎么做?

我无法与主应用程序一起构建库,因为最终目标是让其他开发人员为该应用程序创建插件,并且并非所有组件都将在运行时使用。

如果没有AOT,我将无法保留主应用程序,因为它会变得非常大,并且性能会受到很大影响。

我也知道Angular Elements,但我也想创建AOT lib插件。

0 个答案:

没有答案