2016-11-14 9 views
1

This pageモジュールについては、動的および静的な2つの方法があると述べています。彼らは唯一のmain.tsで設定されています角はaotコンパイラを使用するかどうかを定義します

// The browser platform with a compiler 
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 

// The app module 
import { AppModule } from './app.module'; 

// Compile and launch the module 
platformBrowserDynamic().bootstrapModule(AppModule); 

静的(AOTコンパイラ)対:

// The browser platform without a compiler 
import { platformBrowser } from '@angular/platform-browser'; 

// The app module factory produced by the static offline compiler 
import { AppModuleNgFactory } from './app.module.ngfactory'; 

// Launch with the app module factory. 
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory); 

私の質問は、角がAOTコンパイラを使用しなければならないことを知っているんですか?それを示すオプションはないようです。私はそれがmain.tsを解析し、@angular/platform-browser'または@angular/platform-browser-dynamic'を使用したかどうかを確認することはできません。

答えて

1

あなたは別のモジュールをインポートするだけではなく、セットアップ全体が異なります。動的なシナリオで

、あなたのAppModuleplatformBrowserDynamicローダによってロードされます。このオブジェクトは、アプリケーションの残りのモジュールをJITコンパイルする方法を知っています。静的シナリオ

、あなたの代わりにplatformBrowserローダにAppModuleNgFactoryを提供しています。この他のオブジェクトは、アプリケーションのAOTコンパイル済みファイルをどこに見つけるかを知っています。

AOTコンパイラを使用するかどうかを角度で判断することはできません。の前にはになりません。内容は、既存のコンパイル済みファイルを検索するか、ローカルで生成するかを決定します。プリコンパイルされたファイルはすでに存在しています。それは後に進むかどうかの問題です。

ファイルAOTをコンパイルするかどうかを決定するには、Typescriptコンパイラの設定(tsconfig.jsonに格納されている)も異なることに注意してください。 angularCompilerOptionsセクションでAOTコンパイルが可能です。

ドキュメント:https://angular.io/docs/ts/latest/cookbook/aot-compiler.html

+0

おかげで、しかし、 'AppModuleNgFactory'は、コンパイラによって生成され、そうではありませんか?この行 'import {platformBrowser}}と' '@ angular/platform-b​​rowser ''と' '{/ app.module.ngfactory 'からのimport {AppModuleNgFactory}の間では、aotの使用が決定されます。いいえ? –

+0

私は答えを完成するための段落を追加しました=) – slezica

+0

ありがとう、それは彼らがそれを置く方法を少し誤解しています。それはあなたが提供したリンクから他のすべてのステップが実行された後の実際の最後のステップです。もちろん '' AppModuleNgFactory'は 'nagc'コンパイルの後で '@Angel/platform-b​​rowser'の' import {platformBrowser} '行の前でも準備ができています; '私は処理されています –

関連する問題