谷歌發布了廣受歡迎的Angular JavaScript框架的4.0版本,該版本致力于縮小生成代碼的體積,以及保持框架的簡化發布計劃。
因為Angular改為使用語義版本控制,所以4.0版本的發布并不像2.0版本那么重大。 4.0版本僅僅意味著有開發人員需要注意的突破性變化。所幸這些變化影響并不大,不需要重新學習整個框架。Angular開發組成員Rob Wormald表示,“大多數開發人員應該只需要更新自己的依賴并進行重新構建。”
Angular跳過了版本3,直接發布了版本4,以便與已經采用了3.X版本號的Angular router版本保持同步。
4.0版本有很多新功能,其中大部分都是很小的功能改動。 最大的改進之一就是Angular的Ahead-Of-Time(AOT)編譯器生成代碼的方式。 Angular 開發組成員Tobias Bosch在設計文檔中提道,一個源代碼僅有245字節的示例模板被編譯為32.5倍大的7,951字節的TypeScript代碼。 雖然使用AOT編譯器對于Angular性能有積極的影響,但傳送到瀏覽器的帶寬負荷很大。 在他的原型中,Bosch能夠將編譯的TypeScript代碼降低到1,833字節(比原始代碼大7.5倍,但小于原先編譯器結果的25%)。 在4.0版本的公告中,Google提道,開發人員應該注意一個重大改進:
我們已經對AOT生成的代碼進行了改進。在大多數情況下,這些改進會使生成的代碼大小減少約60%。 模板越復雜,改進越明顯。
在候選發布期間,據許多開發人員反饋,遷移到版本4使發布環境js包(production budles)減少了幾百KB。
在Hacker News網站,開發者寫道“從v2升級到v4是無感的”,而且Angular開發者Cory Rylan告訴InfoQ“這是嘗試Angular的最好時機了,性能改進非常驚人!”
這個版本的Angular的TypeScript直接升級到2.1版本。之前使用的是1.8版本的TypeScript,沒有向后兼容性。 其他重要變化是:
動畫功能單獨打包(package)
Angular Universal(服務器端渲染項目)與Angular同步發布(現在由Angular團隊維護)
模板的Source Map功能
優化 *ngIf和*ngFor指令
隨著此次發布,Angular團隊已經履行了他們每六個月發布一次的承諾。 下一個主要版本(至5.0)將于2017年10月的某個時間發布。完整的發布時間表可在GitHub上找到。
查看英文原文:Angular 4.0 Released with a Focus on Shrinking App Size