如何以角度2动态加载第三方模块。使用Angular CLI进行生产构建(AOT)。它使用webpack,在运行构建命令ng build --prod之后生成早期和延迟加载的所有构建文件。
我尝试使用require js加载第三方模块,webpack为第三方模块创建了chunk js文件,就像延迟加载模块一样。然后我使用JIT编译器来创建第三方模块的组件。这对我来说可以。
我正在寻找第三方模块将为我提供编译组件的解决方案,我不需要使用Jit创建组件。我正在寻找解决方案,它将动态加载第三方模块,它将开始在我的角度2应用程序中渲染他们的组件。
答案 0 :(得分:0)
我们正在使用Require JS加载延迟加载的模块。延迟加载的模块(sample.module.js)由最终用户放置(在custom / sampleLib内部)。最终用户从其应用程序生成延迟加载的模块。将jit编译器导入我们的系统以按需创建最终用户的组件。除了JiT之外,仍然找不到其他解决方案。
require.ensure(
["assets/samples/sample.module.js"],
(require) => {
let SampleCo = require(assets/samples/sample.module.js");
this._compiler
.compileModuleAndAllComponentsAsync(
SampleCo.SampleCustomModule
).then((compiled) => {
const component1 = compiled.componentFactories.find(
(m) => m.selector == "sample-comp1"
); });
//here we create component with ViewContainerRefr
},
"custom/sampleLib"
}