私はAOTコンパイラが初めてです。
このオプションを使用して、すべてのファイルを「コンパイル済み」ディレクトリにコンパイルします。
"angularCompilerOptions": {
"genDir": "compiled",
"skipMetadataEmit" : true
}
しかし、「ngc」を実行すると、新しく作成された .ngfactory ファイルもコンパイルしようとし、入力エラーがスローされます。
「コンパイル済み」ディレクトリを削除してコードを再コンパイルしようとしましたが、再び起こりました。
また、tsconfig-aot.json ファイルに「exclude」キーを追加して (typescript コンパイラにあるように)、「コンパイル済み」ディレクトリを追加しようとしましたが、役に立ちませんでした。
何か案は?
==== 編集 ====
役立つ情報がいくつかあります。「genDir」をアプリケーション ディレクトリ以外のディレクトリに設定しようとしたところ、コンパイラがモジュール「app.module.ngfactory」を見つけられないというエラーが表示されました。
私の理解では、これは main.ts を次から変更したため、「.ngfactory」ファイルをコンパイルしようとすることを意味します。
import { AppModule } from "./components/app.module";
platformBrowserDynamic().bootstrapModule(AppModule);
に:
import { AppModuleNgFactory } from "../compiled/client/components/app.module.ngfactory";
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);
これにより、コンパイラが app.module.ngfactory をコンパイルし、そこから「app.module.ngfactory」の他のインポートに移動して、すべての「.ngfactory」ファイルをコンパイルしようとします。
それは理にかなっていますか?「main.ts」ファイルを、Google が示すとおりに変更しました: https://angular.io/docs/ts/latest/cookbook/aot-compiler.html