Angular 8確定包含Ivy,預計今年第二季度發佈

每週都會有人問我:“Ivy什麼時候可以發佈”?這篇文章將解答有關Angular 8.0版本的最新進展以及Ivy的定版和發佈計劃。

我們計劃將Ivy作爲即將在今年第二季度發佈的Angular 8.0的一部分,並且是可選預覽。

Angular 8.0爲我們帶來了哪些東西?

雖然團隊的大部分人在忙於開發Ivy,但也在努力爲Angular 8.0版推出一些更新。需要注意的是,這些計劃可能會在最終版本發佈之前發生變化。

JavaScript差異化加載

作爲構建過程的一部分,CLI將會生成遺留(ES5)和現代(ES2015+)JavaScript捆綁包,並在客戶端進行差異化加載,以提高現代瀏覽器的加載速度和TTI。這項工作主要是基於Manfred Steyer的ngx-build-modern項目,並且與Manfred合作開發。

可選的預覽版Ivy

預覽如何在應用程序中使用Ivy,並向我們提供反饋,這樣我們才能更好地將必要的變更和改進納入到最終版中。

Angular Router向後兼容性

我們正在添加向後兼容模式,以簡化大型項目的升級路徑。用戶可以使用$route API延遲加載AngularJS應用程序的部分內容,從而可以更容易地遷移到Angular。

改進的Web Worker捆綁

Web Worker可用來編寫運行在主線程之外的代碼,以此來提高應用程序的運行速度和並行性。我們正在爲CLI添加對Web Worker的捆綁支持,解決開發人員在這方面的需求。

可選的使用信息分享

爲了更好地滿足社區的需求,我們在CLI中添加了可選的遙測功能。在獲得用戶同意的情況下,我們將收集有關命令和構建速度等方面的信息。這方面的信息知道得越多,我們就能做得越好。

依賴更新

與往常一樣,我們也在更新對TypeScript、RxJS和Node等工具的依賴,以便與生態系統的其他部分保持同步。

Ivy會是什麼樣子?

我們的目標是在Angular 8.0中包含可選的預覽版Ivy。如果你對Ivy還不熟悉,可以看一下Kara在谷歌I/O 2018大會上如何談論Ivy:

https://youtu.be/jnp_ny4SOQE?t=1320

可選的預覽版Ivy可以讓你在項目中切換Ivy和View Engine,具體的操作細節將在即將推出的beta版本中提供。如果啓用了這個選項,將會使用Ivy運行時指令而不是ViewEngine運行時來構建應用程序。應用程序將使用Ivy編譯器構建,而且通過使用我們的兼容性編譯器,來自Angular或其他第三方的依賴項仍然可以繼續使用。預覽版可以識別出與依賴項相關的問題,並幫助我們改進兼容性。

可選的預覽版將帶來如下內容:

  1. 生成更易於閱讀和調試的代碼;

  2. 更快的重建速度;

  3. 改進的有效載荷大小;

  4. 改進的模板類型檢查;

  5. 非常棒的向後兼容性。

Ivy並不一定可以用於所有的場景。某些功能(如國際化或Angular Universal)在預覽版中可能還不具備完全的兼容性。在預覽版中,語言服務將無法正常運行。

這個預覽版專注於在不重寫應用程序的情況下讓開發人員可以將應用程序切換到使用Ivy編譯器和運行時指令。有很多特定於Ivy的API將被添加到我們的公共API中,作爲Angular Labs和未來穩定版本的一部分。

什麼時候可以準備好?

我們現在無法承諾一個固定的時間表,這個計劃還有可能會發生變化。現在的計劃是在2019年4月進入RC,並在一個月後發佈Angular 8.0。我們將在Angular 8.0中使用Ivy可選預覽來驗證我們對向後兼容性的承諾,可能還需要推出任何必要的自動遷移工具。

我們希望將Ivy作爲今年秋季下一個主要版本的一部分。由於我們專注於向後兼容性和支持現有應用程序,因此還不打算在Angular 9中默認啓用Ivy。

我們真的很希望看到那個在Angular 9中推出完整版的Ivy,爲開發人員帶來更多的可能性。如果有任何新的進展,我們會繼續與大家分享我們的計劃。

英文原文:

https://blog.angular.io/a-plan-for-version-8-0-and-ivy-b3318dfc19f7

更多內容,請關注前端之巔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章