我正在Angular 6中完成一个基于插件的应用程序。我有2个项目,一个主项目和一个lib项目,我将在这些项目中开发插件。使用ng build --prod将插件构建到UMD中,然后使用SystemJs将其加载到主应用程序中,然后在运行时使用Compiler类对其进行编译(已构建的插件部署在另一台服务器上)。主应用程序在构建时没有引用lib项目。
只要我在开发人员模式下运行主应用程序,这就可以正常工作。当我在产品中尝试时,由于JIT编译器在产品构建中被删除的事实而崩溃,并显示“错误:运行时编译器未加载”。
我的问题是:是否可以提前构建Angular 6 Cli Lib项目(或不一定是cli lib项目),并用SystemJs加载它,然后仅使用组件工厂进行动态组件创建?我该怎么做?
我无法与主应用程序一起构建库,因为最终目标是让其他开发人员为该应用程序创建插件,并且并非所有组件都将在运行时使用。
如果没有AOT,我将无法保留主应用程序,因为它会变得非常大,并且性能会受到很大影响。
我也知道Angular Elements,但我也想创建AOT lib插件。