在运行时从不同的服务器加载模块

Loading modules from different server at runtime

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

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

更新

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

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

本文介绍了如何从其他来源加载 webpack 模块: Solution: load independently compiled Webpack 2 bundles dynamically

在路由中,您在 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);
        });

    });

}