2017-08-05 110 views
0

My app與開發版本運行良好,但我沒有讓AOT生產構建工作。對於每一個懶加載的模塊,我得到這樣的錯誤:AOT與JHipster:module.ngfactory文件沒有爲懶惰加載模塊生成

ERROR in ./target/aot/src/main/webapp/app/app.module.ngfactory.ts 
Module not found: Error: Can't resolve './features/about/about.module.ngfactory' in '/Users/Dan/work/a/gba/target/aot/src/main/webapp/app' 
@ ./target/aot/src/main/webapp/app/app.module.ngfactory.ts 535:190-240 
@ ./src/main/webapp/app/app.main-aot.ts 

,一個是這樣的:

ERROR in ./src/main/webapp/app/app.routing.ts 
Module not found: Error: Can't resolve '../../../../target/aot/src/main/webapp/app/features/about/about.module.ngfactory' in '/Users/Dan/work/a/gba/src/main/webapp/app' 
@ ./src/main/webapp/app/app.routing.ts 15:137-228 
@ ./target/aot/src/main/webapp/app/app.module.ngfactory.ts 
@ ./src/main/webapp/app/app.main-aot.ts 

的路徑似乎是正確的,但這些模塊的文件不存在。如果我急切地加載一個懶惰的加載模塊,那麼該錯誤會消失。

我按照從angular-router-loader的方向。我覺得我做了正確的,但沒有運氣

// webpack.prod.js 
    { loader: 'angular-router-loader?aot=true&genDir=target/aot' } 


// tsconfig-aot.json 
"angularCompilerOptions": { 
    "genDir": "target/aot", 
    "skipMetadataEmit": true 
} 

回答

2

我懷疑你的問題與你的tsconfig-aot.json因爲角度的編譯器看起來你已經交給tsconfig文件有關。

因此,這裏是我的假設:

tsconfig-aot.json

"files": [ 
    "src/main/webapp/app/app.module.ts", 
    "src/main/webapp/app/app.main-aot.ts", 
    "src/main/webpapp/app/features/about/about.module.ts" <= try to add this 
], 
+0

感謝。我相信編譯器通過從app模塊開始並遍歷app.module - > app.routing - > about.module來獲取about模塊。不幸的是,將about.module添加到tsconfig並沒有幫助。 –

+0

我如何重現它?我在您的回購中看不到有關模塊 – yurzui

+0

此解決方案適用於我。我也使用'files'選項 – yurzui