12

是否有可能在我的 Angular 2 应用程序运行时中从不同的服务器加载不同的模块,如果可以,我该如何实现?

我想让我的应用程序从隔离的服务器(A、B、C)加载与整个应用程序不同的组件,这样它们就可以独立于主应用程序和 A、B 或 C 中包含的任何组件被删除和更新不会被加载。底部显示的 3 个模块将包含组件,但主应用程序将在其 HTML 中声明它应该加载组件的位置。

概述

更新

通过路由延迟加载不是我想要的,这 3 个模块应该是完全独立的模块,它们有自己的存储库、项目、托管、enz。

4

1 回答 1

10

有点晚了,但是你可以在路由中使用延迟加载机制来做你想做的事。

这篇文章说明了如何从另一个来源加载 webpack 模块: 解决方案:动态加载独立编译的 Webpack 2 包

在路由中,您在 loadchildren 部分定义回调:

const appRoutes: Routes = [
    {path: '', component: MainComponent},
    {path: 'modulea', loadchildren: loadModuleA}
]

loadModuleA 方法如下所示:

export function loadModuleA() {

    return new Promise((resolve, reject) => {

        // the method from the article
        loadPlugin('path/to/server/of/moduleA', (exports) => {
            // The Submodule must export ModuleA
            resolve(exports.ModuleA);
        });

    });

}
于 2017-06-26T13:31:28.720 回答