angular - Angular 6 - 库上的 AOT 编译,用作主应用程序中的延迟加载插件
问题描述
我正在开发一个在 Angular 6 中完成的基于插件的应用程序。我有 2 个项目,一个主项目和一个我开发插件的 lib 项目。插件使用 ng build --prod 构建到 UMD 中,然后使用 SystemJs 加载到主应用程序中,在主应用程序中使用 Compiler 类在运行时进行编译(构建的插件部署在另一台服务器上)。主应用程序在构建时不包含对 lib 项目的引用。
只要我在开发模式下运行主应用程序,它就可以正常工作。当我在 prod 中尝试它时,由于 JIT 编译器在 prod 构建中被删除,它崩溃并显示“错误:未加载运行时编译器”。
我的问题是:是否可以提前构建一个 Angular 6 Cli Lib 项目(或者不一定是一个 cli lib 项目),使用 SystemJs 加载它,然后只使用组件工厂来创建动态组件?我怎么能做那个构建?
我无法将 lib 与主应用程序一起构建,因为最终目标是让其他开发人员为应用程序创建插件,并且并非所有组件都将在运行时使用。
如果没有 AOT,我无法保留主应用程序,因为它会变得非常大,并且性能会受到很大影响。
我也知道 Angular Elements,但我也希望能够创建 AOT lib 插件。
解决方案
推荐阅读
- python - python中如何加快读写二进制文件操作?
- angular - 带有路由出口的嵌套路由不起作用
- webrtc - Webrtc 禁用轨道不会关闭网络摄像头
- javascript - JavaScript insertAdjacentHTML 打开新模式不起作用
- python - 为什么在实例化 __repr__ 方法时会出现 SyntaxError
- asp.net-core - 如何将跨平台应用程序作为服务运行?
- cmd - 将 Name 和 GUID 都设置为变量 WMIC Product Get
- android - 无法以编程方式打开 GPS
- spring-boot - 在 Jenkins 中使用 Jmeter 进行负载测试时出现 SSL 握手异常
- reactjs - 未显示 React 组件中的 SVG