使用JHipster的AOT:没有为延迟加载的模块生成module.ngfactory文件

时间:2017-08-05 20:28:16

标签: angular webpack jhipster

My app运行dev开发运行正常,但我没有让AOT生成版本工作。对于每个延迟加载的模块,我收到如下错误:

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
}

1 个答案:

答案 0 :(得分:2)

我怀疑你的问题与你的tsconfig-aot.json有关,因为angular的编译器会查找你传递给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
],