2016-09-26 152 views
0

我正在使用angular2完整版,我试图实现延迟加载。我的主要路由如下用webpack懒惰加载angular2

export const ROUTES: Routes = [ 
    { path: 'login', component: LoginPage }, 
    { path: 'reset-password', component: Myaccount }, 
    { 
     path: '', 
     redirectTo: 'app', 
     pathMatch: 'full' 
    }, 
    ...ROUTES_APP, 
    { path: "sub", loadChildren: "es6-promise?,[name]!./app/sub/sub.module#SubModule" }, 
]; 

我的子路由如下

import { Routes, RouterModule } from "@angular/router"; 
import { SubAppComponent } from "./sub-app.component"; 
import { SubHomeComponent } from "./sub-home.component"; 

export const subRoutes: Routes = [ 
    { 
    path: "", 
    component: SubAppComponent, 
    children: [ 
     { path: "", component: SubHomeComponent } 
    ] 
    }, 
]; 

export const subRouting = RouterModule.forChild(subRoutes); 

我的子模块如下

import { NgModule } from "@angular/core"; 
import { subRouting } from "./sub.routing"; 
import { SubAppComponent } from "./sub-app.component"; 
import { SubHomeComponent } from "./sub-home.component"; 

@NgModule({ 
    imports: [ 
    subRouting, 
    ], 
    declarations: [ 
    SubAppComponent, 
    SubHomeComponent, 
    ], 
}) 
export class SubModule { 
} 

而导航到子我收到错误 但我越来越低于错误

core.umd.js:3462 EXCEPTION:Uncaught(in pro濑):类型错误:System.import不是一个函数

请帮我在这/让我知道如何使用的WebPack

+0

你标题说webpack,但你的错误说你仍然使用'System.js'。 Angular2 webpack版本根本不使用system.js。 – choz

+0

因此,我感到惊讶! –

+0

你使用角度cli吗? – mxii

回答

2

我上面已经解决了处理延迟加载使用要求

{ path: "sub", loadChildren:() => require("es6-promise!./app/sub/sub.module")("SubModule") } 
-1

尝试角路由器装载机

按照以下步骤..

npm install angular-router-loader --save-dev 

路线懒加载

import { Routes } from '@angular/router'; 

export const routes: Routes = [ 
    { path: 'lazy', loadChildren: './lazy.module#LazyModule' } 
]; 

同步加载

import { Routes } from '@angular/router'; 

export const routes: Routes = [ 
    { path: 'lazy', loadChildren: './lazy.module#LazyModule?sync=true' } 
]; 

webpack.config.js

test: /\.ts$/, 
    loaders: [ 
     'awesome-typescript-loader', 
     'angular-router-loader' 
    ] 
    } 
+1

我得到EXCEPTION:最大调用堆栈大小超过错误。 Subscriber.js:227未捕获RangeError:超出最大调用堆栈大小 –

+0

尝试删除所有注释再次发生同样的错误。如果您有任何github链接,请提供给我。 –