2016-11-20 58 views
0

我現在正在關注Angualr模塊指南,但與本教程不同,我使用webpack作爲打包解決方案。一切都很好,直到我添加英雄模塊。對於默認的接觸模塊,它工作沒有問題,但是當我添加英雄模塊,我得到這個錯誤:angular2 with webpack,模塊路由獲取系統未找到錯誤

EXCEPTION: Uncaught (in promise): ReferenceError: System is not defined 

我查了很多,如修改tscofig並設置模塊CommonJS的,它是無用

我想接觸模塊和英雄之間的模塊不同的是:

export const routes: Routes = [ 
    { path: '', redirectTo: 'contact', pathMatch: 'full'}, 
    { path: 'crisis', loadChildren: 'app/crisis/crisis.module#CrisisModule' }, 
    { path: 'heroes', loadChildren: 'app/hero/hero.module#HeroModule' } 
]; 

所以英雄模塊延遲加載,接觸模塊不同。

有沒有人遇到錯誤,當你使用webpack而不是系統來打包你的angular2項目?

感謝

弗蘭克

+0

見你的英雄模塊是如何構建。看起來你的heros模塊是使用systemjs構建的,這就是爲什麼它搜索Systemjs的原因。 –

+0

這怎麼可能?整個項目是用webpack構建的,英雄只是同一個項目裏面的一個功能模塊,我完全按照ng2 – user3006967

+0

的指導,你能給一個笨蛋嗎? –

回答

1

如果您已按照angular2 webpackngmodule指南,你需要做的是:

npm install --save-dev angular2-router-loader

和它的WebPack配置添加到您的打字稿裝載機(在webpack指南中是config/webpack.common.js):

module: { 
    loaders: [ 
    { 
     test: /\.ts$/, 
     loaders: [ 
     'awesome-typescript-loader', 
     'angular2-template-loader', 
     'angular2-router-loader' 
     ] 
    }, 
    ... 

和你的路由模塊在製造相對於加載它們的模塊的路徑:

export const routes: Routes = [ 
    { path: '', redirectTo: 'contact', pathMatch: 'full'}, 
    { path: 'crisis', loadChildren: './crisis/crisis.module#CrisisModule' }, 
    { path: 'heroes', loadChildren: './hero/hero.module#HeroModule' } 
]; 

閱讀更多:
https://github.com/brandonroberts/angular2-router-loader
https://medium.com/@daviddentoom/angular-2-lazy-loading-with-webpack-d25fe71c29c1#.qnct3euh2

相關問題