我们如何在角度2中动态加载第三方模块

时间:2018-06-03 16:33:35

标签: angular

如何以角度2动态加载第三方模块。使用Angular CLI进行生产构建(AOT)。它使用webpack,在运行构建命令ng build --prod之后生成早期和延迟加载的所有构建文件。

我尝试使用require js加载第三方模块,webpack为第三方模块创建了chunk js文件,就像延迟加载模块一样。然后我使用JIT编译器来创建第三方模块的组件。这对我来说可以。

我正在寻找第三方模块将为我提供编译组件的解决方案,我不需要使用Jit创建组件。我正在寻找解决方案,它将动态加载第三方模块,它将开始在我的角度2应用程序中渲染他们的组件。

1 个答案:

答案 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" 
}