Angular 12 將棄用 View Engine 并將其替換為 Ivy
Angular 團(tuán)隊(duì)透露,其計(jì)劃在第 12 版中棄用傳統(tǒng)編譯和渲染管道 View Engine,并用 Ivy 進(jìn)行替換。不過,這一變化不需要開發(fā)者采取任何行動(dòng);依賴于 View Engine 的庫(kù)可繼續(xù)通過兼容編譯器 ngcc 按預(yù)期工作。
官方博客稱,在過去的一年里,Angular 的新渲染和編譯管道 Ivy 已經(jīng)成為了開發(fā)者的默認(rèn)體驗(yàn)。Ivy 可以使 Angular 更簡(jiǎn)單,更快并且更易于維護(hù)。團(tuán)隊(duì)在 Angular 9 中首次啟用 Ivy 時(shí),曾開發(fā)了一個(gè)名為 ngcc 的兼容性編譯器,該編譯器可確保與使用 View Engine 的庫(kù)的向后兼容性。這將確保即使棄用了舊版編譯和渲染管道,依賴于它的庫(kù)仍然可以正常工作。
為了順利從 View Engine 過渡,Angular 方面制定了一個(gè) Ivy Library Distribution 計(jì)劃并將其作為 RFC 與社區(qū)共享。該團(tuán)隊(duì)收集到了很多反饋,并在 Angular v11.2 中發(fā)布了預(yù)覽實(shí)現(xiàn)。
根據(jù) Angular 團(tuán)隊(duì)的說法,其決定棄用 View Engine 的原因在于,大多數(shù) Angular 開發(fā)人員已轉(zhuǎn)而使用 Ivy。目前,所有 Angular 庫(kù)仍舊均為 View Engine 格式。由于具有兼容性編譯器,開發(fā)人員可以在 Ivy 應(yīng)用程序和庫(kù)中使用所有這些庫(kù);但反之則不然,View Engine 庫(kù)不能依賴 Ivy。
為了確保依賴 Angular 框架和組件的庫(kù)的平穩(wěn)過渡,官方將繼續(xù)以 View Engine 格式分發(fā)它們。但當(dāng) Angular 13 發(fā)布并且大多數(shù)第三方庫(kù)都已經(jīng)使用 Ivy 時(shí),他們也計(jì)劃對(duì) Angular 及其組件進(jìn)行過渡。
該團(tuán)隊(duì)指出,這一更改僅適用于新的應(yīng)用程序和庫(kù),現(xiàn)有項(xiàng)目無需采取任何措施,并且不會(huì)影響開發(fā)人員。對(duì)于那些擁有舊版應(yīng)用程序或庫(kù)所依賴的庫(kù)的人,他們建議繼續(xù)以 View Engine 格式分發(fā)它們,并確保在所有依賴庫(kù)都移至 Ivy 之前,不要選擇加入 Ivy 發(fā)行版。
詳情可查看:https://blog.angular.io/upcoming-improvements-to-angular-library-distribution-76c02f782aa4
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:Angular 12 將棄用 View Engine 并將其替換為 Ivy
本文地址:https://www.oschina.net/news/139419/angular-12-deprecate-view-engine