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鏈接,請提供給我。 –