2017-03-07 51 views
3

我建設我Angular2應用與--prod標誌後得到以下運行時錯誤:未加載排查「運行時編譯器不加載」

運行時編譯

據我所知,生產構建使用AoT,並且此場景中不支持運行時編譯。
我的問題是:我沒有意識到我正在做的事情需要運行時編譯器。它甚至可能是我正在使用的外部組件。

如何找出導致此錯誤的組件?

+0

您使用的是哪些第三方軟件包? –

+1

不少。我發現問題在於angular2-busy使用DynamicComponent。但是,我發現這只是因爲該組件停止工作。沒有更確定性的方法嗎? –

+0

不確定「確定性方法」的含義。如果您在運行時創建組件,則目前無法使用AoT。另請參閱http://stackoverflow.com/a/42619501/217408 –

回答

0

當我嘗試使用模塊類型而不是路徑使用延遲模塊加載時,我遇到了與AoT編譯類似的問題。

正確加載:

{ path: 'lazy', loadChildren: 'lazy/lazy.module#LazyModule' } 

路,我已經做到了(崩潰AOT):

export function loadLazyModule() { 
    return LazyModule; 
} 
export const appRoutes: Routes = [ 
    { path: 'lazy', loadChildren: loadLazyModule, }, 
]; 

事實上的錯誤消息是無益可言,然而,堆棧跟蹤是:

at Compiler.compileModuleAsync (core.js:3664) 
at MergeMapSubscriber.eval [as project] (router.js:4467) 

我剛剛在compileModuleAsync功能做了一個斷點,在停止只見模塊WH這導致了錯誤。