【发布时间】:2016-08-18 22:44:51
【问题描述】:
在上一个 RC5 中,我一直在努力解决延迟加载和模块问题。
我正在为我的应用程序中的每个模块使用一个包。所以我有 main.bundle.js 和 moduleA.bundle.js
然后,当我加载我的应用程序时,我只加载 main.bundle.js,作为我的应用程序的路由,如下所示:
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{
path: '',
redirectTo: 'main',
pathMatch: 'full'
},
{
path: 'moduleA',
loadChildren: 'moduleA.bundle.js#ModuleAModule'
}
];
export const routing = RouterModule.forRoot(routes);
这是我的 moduleA.module.ts
import { NgModule } from '@angular/core';
import { routing } from './moduleA.routing';
import { ModuleAComponent } from './';
@NgModule({
imports: [
routing
],
declarations: [
ModuleAComponent
]
})
export default class ModuleAModule { }
我的应用程序加载正常,但是当我导航到 moduleA 时,它会加载包但找不到类。
Error: Uncaught (in promise): Error: Cannot find 'ModuleAModule' in 'moduleA.bundle.js'
在文档和其他示例中,这是有效的,因为它们不使用捆绑包,而是使用 ts 文件的路径,但在我的情况下,这是一个 javascript 文件,似乎找不到该类。
我尝试了不同的组合,在模块类的导出中使用和不使用 default,在 loadChildren 中使用和不使用 #ModuleAModule,但没有运气。它要么在模块中找不到“默认”类,要么在包中找不到 ModuleAModule。
我不知道这是不是 angular2 路由问题、打字稿问题…… 关于如何克服这个问题的任何想法?
【问题讨论】:
-
你用什么来创建你的包?
-
gulp 中的 systemjs-builder
标签: angular typescript angular2-routing