2017-07-14 100 views
3

我正在轉換angular2應用程序使用commonjs爲JiT和手動配置aot(兩個index.html文件,兩個main.ts文件等)的舊方法angular4 cli模板(ng新的appName)。AngularCli構建和服務器-aot vs --prot

2/4之間似乎很多變化周圍的氣候變化。觀看了一些youtube視頻,使用ng cli創建了一個新應用程序,並且我看到ng build和ng都支持--prod和--aot標誌,但生成的webpack在使用兩種不同標誌時大小不同。

是什麼

ng build --prod 

ng build --aot 

,然後之間的區別發球:

ng serve --prod 

ng serve --aot 

看來prod捆綁小於aot捆綁,但爲什麼?

+0

'--prod'是prod build(這將會更小)'--aot'提前編譯。 –

+0

是的,但prod做什麼不是封裝在 - 不是嗎? – cobolstinks

+0

https://stackoverflow.com/questions/40205903/angular2-cli-why-bundle-size-of-prod-smaller-than-prod-aot –

回答

3
Bundle size of 「ng build --prod」 smaller than 「build --prod --aot

如果您使用的是不支持AOT(和釋放UMD捆綁)這件事會發生某些庫。原因是我們無法優化純粹JavaScript的組件。不幸的是,這不是我們可以解決的問題。

這些庫需要公開它們的裝飾器,並且它們的組件/模塊已經被AoT編譯的ES2015模塊。我們正在制定圖書館指南,以支持JIT和AoT編譯。

此外,有時候有些模板的AoT尺寸可能會比JIT大。 gzip版本應該是相反的方式,因爲大部分AoT內容是反覆重複的相同的語句。

雖然束較大,但引導時間應該明顯更快。

+0

因此,在將應用程序發佈給用戶之前,建議使用--prod標誌? – cobolstinks

+0

我猜我在空白什麼時候有人會使用 - 不加標誌... – cobolstinks

0

--prod使得其具有所需部署的應用程序,這意味着它包含了所有的JS束一切dist文件夾

+0

也是 - 不過 – cobolstinks

5

--prod - 申請醜化,然後再縮小,以減少束以及使生產的角度工作模式,它減少了角度編譯器給出的運行時警告,並提高了性能。

--aot - generaly當我們服務的角度項目中的所有角的文件瀏覽器的螞蟻下載它會編譯並在瀏覽器中執行應用程序,但在交付給瀏覽器,因此預編譯aot整個應用程序提高性能

build - 將捆綁文件並將其放在dist文件夾中,以便我們可以將這些文件用於服務器上的部署。

serve - 將在lite服務器上運行應用程序。