移除 View Engine 轉用 Ivy,盤點 Angular 12 的重要更新

作者 | 核子可樂、曉旭

在經歷了多個 beta 與候選版本之後,Angular 12 終於正式發佈了。

Angular 12 版本的最大亮點就是淘汰掉了舊的 View Engine 編譯與渲染管道,轉而採用更爲現代的 Ivy 技術。谷歌將 Ivy 描述爲下一代編譯與渲染管道,能夠顯著提升 AOT(ahead of time)編譯速度。Angular 團隊提到,View Engine 將在後續版本中被徹底移除。目前使用 View Engine 的庫仍可與 Ivy 應用配合使用,但開發團隊建議各位庫作者提早向 Ivy 過渡。

移除 View Engine,轉而使用 Ivy

從去年開始,Angular 就開始默認使用新的渲染和編譯工作管線 Ivy。爲了確保 Angular 能夠提供良好的類型檢查、快速偵測變更,Angular 官方團隊一直在調整靜態檢查和動態構建的平臺。

事實上,從 Angular 9 開始,新的 Angular 應用程序就默認啓用 lvy。爲了支持使用 View Engine 函數庫的應用程序向後兼容,Angular 官方團隊開發了 ngcc 相容編譯器,ngcc 是編譯 View Engine 函數庫的方法,可以讓 Ivy 應用程序方便地使用,ngcc 運作非常高性能,只會在必要的時候被調用。

由於 View Engine 函數庫的存在,Angular 暫時還無法移除舊的實例化,這導致維護成本不斷增加,Angular 整體發展速度也被拖慢。爲了解決這個問題,Angular 官方團隊發佈了 lvy 函數庫發佈計劃,新的應用程序開發可以直接使用 lvy。

據瞭解,目前絕大多數的應用程序都在使用 lvy。仍舊使用 View Engine 函數庫的應用,也可以通過 ngcc 相容編譯器轉換爲 lvy。基於此,Angular 12 啓動了加速轉移計劃,官方移除 View Engine,並且禁止使用 View Engine 創建應用程序的功能,而且新函數庫專案將默認使用 Ivy。

當然大家也不必擔心,爲了確保 Angular 框架和組件的函數庫能夠平滑過渡到 lvy,官網目前還會繼續使用 View Engine,大約會在 Angular 13 徹底完成移除 View Engine。

其它更新亮點

除了移除 View Engine,Angular 12 發行版中還包括其他新功能與重要改進:

新版本還對大量 bug 做出修復,進一步完善了編譯器、compiler-cli、Bazel 構建工具、路由器以及 Angular 內其他組件的運行質量。

GitHub 鏈接:

https://github.com/angular/angular/blob/master/CHANGELOG.md

參考鏈接:

https://www.infoworld.com/article/3607428/angular-12-arrives-with-pile-of-improvements.html#jump

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/82-N5_piIwItJZtlHXBMWQ