当我们使用'ngc'编译源代码并将skipTemplateCodegen设置为false时,ngc会生成.ngfactory.js,并且在有角度模块导入时导入的模块具有入口组件时,会为这些入口组件生成组件工厂,如下所示: well和import语句是使用相对路径生成的。
我们要做的是,ngc编译角度代码(带有工厂生成的代码),并使用rollupjs将它们捆绑到UMD中;由于如上所述存在入口组件的附加组件工厂,捆绑的UMD会受到污染,因为import语句具有到导入的角度模块的入口组件的生成组件工厂的相对路径的相对路径。
任何线索如何避免/解决此问题?
使用https://github.com/iamrakesh/ng-extensions回购进行复制。 生成的UMD JavaScript可以在“ platform / assets / sample-ext.module.umd.js”中查看
更新: 实际的项目设置基于https://github.com/maximusk/extension-mechanism-demo和https://github.com/lmeijdam/angular-umd-dynamic-example
更新: 将github存储库更新为另一种具有完整概念实现的存储库。
答案 0 :(得分:0)
另一种实现此目的的替代方法是结合使用AOT和JIT编译。 AOT用于容器应用程序,JIT用于动态加载扩展。 您可以在https://github.com/iamrakesh/ng-extensions-aot-and-jit
中找到此概念的基本实现