是否有可能在我的角度2 app运行时从不同的服务器加载不同的模块,如果是这样,我怎么能实现这个?
我希望我的应用程序从隔离服务器(A,B,C)加载整个应用程序中的不同组件,因此可以从主应用程序和A中包含的任何组件中独立地删除和更新它们, B或C将不会被加载。底部显示的3个模块将具有组件,但主应用程序将在其中声明应加载组件的HTML。
更新
通过路由延迟加载不是我想要的,3个模块应该是完全独立的模块,它们有自己的存储库,项目,托管,enz。
答案 0 :(得分:6)
有点晚了,但你可以在路线中使用延迟加载机制来完成你想要的。
本文阐述了如何从其他来源加载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);
});
});
}