Lazy ロード モジュールで既に動作していたアプリを AOT に変換しようとしています。@ngtools/webpack ツールキットを使用して AOT コードをコンパイルしていますが、Angular が Lazy ロードされたモジュールのコードを見つけられないというエラーが発生しています。
ERROR in ./src/ngfactory async
Module not found: Error: Can't resolve '/Library/WebServer/Documents/envato-teams/src/ngfactory/src/app/components/container/projects.ngfactory.ts' in '/Library/WebServer/Documents/envato-teams/src/ngfactory'
@ ./src/ngfactory async
@ ./~/@angular/core/src/linker/system_js_ng_module_factory_loader.js
@ ./src/ngfactory/src/app/app.module.ngfactory.ts
@ ./src/main.aot.ts
@ multi main
私のアプリのルート定義で言及する価値があるこのプロジェクトのモジュールは遅延ロードされます:
{
path: 'projects', loadChildren: './components/container/projects#ProjectModule'
},
これは私のセットアップがどのように見えるかです:
tsconfig :
...
"angularCompilerOptions": {
"genDir": "./src/ngfactory",
"entryModule": "src/app/app.module#AppModule"
}
...
ウェブパック:
new ngtools.AotPlugin({
tsConfigPath: './tsconfig.aot.json',
}),
Main.aot.ts
/*
* Providers provided by Angular
*/
import { platformBrowser } from '@angular/platform-browser';
import { AppModuleNgFactory } from './ngfactory/src/app/app.module.ngfactory';
import { Servicesconfig } from './app/services/index';
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);
webpack では、次のようにして @ngtools/Webpack で ts ファイルをコンパイルしています。
// Support for .ts files.
{
test: /\.ts$/,
loaders: ['@ngtools/webpack'],
exclude: [/\.(spec|e2e)\.ts$/]
},
ご協力ありがとうございました!