是否有可能在我的 Angular 2 应用程序运行时中从不同的服务器加载不同的模块,如果可以,我该如何实现?
我想让我的应用程序从隔离的服务器(A、B、C)加载与整个应用程序不同的组件,这样它们就可以独立于主应用程序和 A、B 或 C 中包含的任何组件被删除和更新不会被加载。底部显示的 3 个模块将包含组件,但主应用程序将在其 HTML 中声明它应该加载组件的位置。
更新
通过路由延迟加载不是我想要的,这 3 个模块应该是完全独立的模块,它们有自己的存储库、项目、托管、enz。
是否有可能在我的 Angular 2 应用程序运行时中从不同的服务器加载不同的模块,如果可以,我该如何实现?
我想让我的应用程序从隔离的服务器(A、B、C)加载与整个应用程序不同的组件,这样它们就可以独立于主应用程序和 A、B 或 C 中包含的任何组件被删除和更新不会被加载。底部显示的 3 个模块将包含组件,但主应用程序将在其 HTML 中声明它应该加载组件的位置。
更新
通过路由延迟加载不是我想要的,这 3 个模块应该是完全独立的模块,它们有自己的存储库、项目、托管、enz。
有点晚了,但是你可以在路由中使用延迟加载机制来做你想做的事。
这篇文章说明了如何从另一个来源加载 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);
});
});
}