2017-05-24 19 views
0

ルーティング用にangle-cliとlazyloaderを使用しています。lazyloaderはAOTの生産モードでは動作しません。

ng serveが私の仕事ですが、プロダクションモードとしてプロジェクトをビルドした後は、まったく動作しません。ここで

は私のapp.routing.ts

import { NgModule } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 
import { MainComponent } from './main/main.component'; 
import { AuthGuard } from './core/guards/index'; 
//Layouts 
import { LoginComponent } from './login/login.component'; 

export const routes: Routes = [ 
    { 
    path: 'login', 
    component: LoginComponent 
    }, 
    { 
    path: '', 
    component: MainComponent, 
    children: [ 
     { 
     path: '', 
     loadChildren: './main/main.module#MainModule' 
     } 
    ], 
    canActivate: [AuthGuard] 
    },{ 
    path: '**', 
    redirectTo: 'login' 
    } 
]; 

@NgModule({ 
    imports: [ RouterModule.forRoot(routes) ], 
    exports: [ RouterModule ] 
}) 
export class AppRoutingModule {} 

であり、これは私がng build --prod --aotまたはng serve --prod後に得たエラーです。

ERROR Error: Uncaught (in promise): Error: Cannot find module './app/main/main.module'. 
Error: Cannot find module './app/main/main.module'. 
    at t (main.1f6da18….bundle.js:1) 
    at t.loadAndCompile (vendor.490f84a….bundle.js:379) 
    at t.load (vendor.490f84a….bundle.js:379) 
    at t.loadModuleFactory (vendor.490f84a….bundle.js:428) 
    at t.load (vendor.490f84a….bundle.js:428) 
    at e.project (vendor.490f84a….bundle.js:428) 
    at e.XO5T.e._tryNext (vendor.490f84a….bundle.js:897) 
    at e.XO5T.e._next (vendor.490f84a….bundle.js:897) 
    at e.next (vendor.490f84a….bundle.js:897) 
    at e.RRVv.e._subscribe (vendor.490f84a….bundle.js:736) 
    at t (main.1f6da18….bundle.js:1) 
    at t.loadAndCompile (vendor.490f84a….bundle.js:379) 
    at t.load (vendor.490f84a….bundle.js:379) 
    at t.loadModuleFactory (vendor.490f84a….bundle.js:428) 
    at t.load (vendor.490f84a….bundle.js:428) 
    at e.project (vendor.490f84a….bundle.js:428) 
    at e.XO5T.e._tryNext (vendor.490f84a….bundle.js:897) 
    at e.XO5T.e._next (vendor.490f84a….bundle.js:897) 
    at e.next (vendor.490f84a….bundle.js:897) 
    at e.RRVv.e._subscribe (vendor.490f84a….bundle.js:736) 
    at u (polyfills.1e19b2c….bundle.js:43) 
    at u (polyfills.1e19b2c….bundle.js:43) 
    at polyfills.1e19b2c….bundle.js:43 
    at t.invokeTask (polyfills.1e19b2c….bundle.js:36) 
    at Object.onInvokeTask (vendor.490f84a….bundle.js:365) 
    at t.invokeTask (polyfills.1e19b2c….bundle.js:36) 
    at r.runTask (polyfills.1e19b2c….bundle.js:36) 
    at o (polyfills.1e19b2c….bundle.js:36) 

ここには、ブラウザコンソールのスクリーンショットがあります。

enter image description here

は私のルーティング設定で間違っては何ですか? PP:ng serveはエラーを出さずに作業しています。

+1

ng buildを実行するとどうなりますか--prod --aot false –

+0

ご回答ありがとうございます。私はそれを試み、Apacheサーバーでテストします。 'Uncaught TypeError:undefinedの 'プロパティ' call 'を読み込めません。おそらく私のコードにいくつかの問題がありますか? – blackiii

+0

私のコードに問題がありました。 'loadChildren: '。/ main/main.module.ts#MainModule''これを' loadChildren:'/main/main.module#MainModule 'と変更しました。そして 'ng build --prod --aot false'はうまくいきます。 AoTの何が問題なの? – blackiii

答えて

2

この問題はangular2-busyモジュールから発生しています。

https://www.npmjs.com/package/angular2-busy

プロジェクト解決される問題からこれを削除します。

+0

ありがとう!数え切れないほどの時間が角と角の異なるバージョンのものを混乱させた後、これが原因であることが判明しました。 実際の問題は、開発中、またはプロダクション用にビルドするときにもこの問題に気付かないことです。いいえ、このエラーは、アプリケーションを使用しようとしたときに展開した後にポップアップします。そして、あなたは原因が何であるかについて明確な誤りを得られません。単に驚くほど。 –

関連する問題