在运行时从不同的服务器加载模块
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);
});
});
}
是否可以从不同的服务器在我的 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);
});
});
}