Vue 2 即將結(jié)束支持,你需要注意這些!
隨著 2024 年的臨近,在此提醒大家,Vue 2 將在 2023 年 12 月 31 日到達(dá)生命周期終點(diǎn)(EOL)。
Vue 2.0 發(fā)布于 2016 年,已經(jīng)有超過(guò) 7 年的歷史,它是 Vue 框架成為主流的重要里程碑。許多當(dāng)前的 Vue 用戶都是在 Vue 2 時(shí)期就開(kāi)始使用 Vue 的,并且有許多出色的項(xiàng)目是基于 Vue 2 構(gòu)建的。
然而,同時(shí)維護(hù)兩個(gè)主要版本對(duì) Vue 團(tuán)隊(duì)來(lái)說(shuō)不是可持續(xù)的選擇。隨著 Vue 3 及其生態(tài)系統(tǒng)的成熟,Vue 團(tuán)隊(duì)決定將精力集中在最新的主要版本上。
2023.12.31 會(huì)發(fā)生什么?
自從 Vue 2.7 發(fā)布以來(lái)的 18 個(gè)月里,Vue 團(tuán)隊(duì)對(duì) Vue 2 進(jìn)行了必要的錯(cuò)誤修復(fù)和安全修復(fù),但停止了引入新功能,以便將精力集中在改進(jìn) Vue 3 上。
隨著截止日期的臨近,Vue 社區(qū)應(yīng)該準(zhǔn)備接受 Vue 2 的棄用。在 2023 年 12 月 31 日之后,Vue 團(tuán)隊(duì)將在 npm 上將以下包標(biāo)記為棄用:
- 所有 Vue 2 核心的主要版本和次要版本
- 僅支持 Vue 2 的 vue-router 版本(3.x及以下)
- 僅支持 Vue 2 的 vuex 版本(3.x及以下)
盡管如此,Vue 2 仍然會(huì)通過(guò)所有現(xiàn)有的分發(fā)渠道(如CDN、包管理器、Github等)提供,但將不再獲得新功能、更新或修復(fù)。
換句話說(shuō),你的應(yīng)用將繼續(xù)正常運(yùn)行,但包管理器將會(huì)顯示棄用警告,提醒你 Vue 2 已不再是受支持的版本。
接下來(lái)呢?
自 2022 年 2 月 7 日起,Vue 3 已成為默認(rèn)版本。已經(jīng)遷移到 Vue 3 的用戶享受到了以下優(yōu)勢(shì):
- 更好的性能,包大小更小,渲染更快。
- 加強(qiáng)的 TypeScript 支持,便于大規(guī)模應(yīng)用開(kāi)發(fā)。
- 更高效的基于代理的響應(yīng)系統(tǒng)。
- 新增的內(nèi)置組件,如 Fragment、Teleport 和 Suspense。
- 改進(jìn)的構(gòu)建工具支持和 Vue Devtools 體驗(yàn)。
- ...
當(dāng)有機(jī)會(huì)時(shí),請(qǐng)考慮進(jìn)行遷移!
仍然使用 Vue 2?你應(yīng)該這樣做
在這個(gè)過(guò)渡期間可能會(huì)出現(xiàn)各種情況,因此也了解到用戶可能需要其他選項(xiàng),直到他們能夠進(jìn)行遷移,或者遷移根本不可行。以下是一些其他可供考慮的選項(xiàng):
升級(jí)到 Vue 2 的最終版本
下一個(gè)即將發(fā)布的 Vue 2 版本(2.7.16)將是 Vue 2 的最終版本。計(jì)劃于 2023 年 12 月 23 日發(fā)布。此次補(bǔ)丁版本包括對(duì) 2.7 功能的最終修復(fù),并改進(jìn)了與 Vue 3 的類型對(duì)齊。目前它處于測(cè)試版,鼓勵(lì)嘗試并報(bào)告此版本與 2.7.15 之間可能存在的任何問(wèn)題。
強(qiáng)烈建議一旦 2.7.16 發(fā)布,立即進(jìn)行更新。這將是下面提到的擴(kuò)展支持的起點(diǎn)。
購(gòu)買(mǎi) Vue 2 的擴(kuò)展支持
如果必須在 Vue 2 EOL 之后繼續(xù)使用它,Vue 團(tuán)隊(duì)已經(jīng)與 HeroDevs 合作提供無(wú)限期支持(NES)。Vue 2 NES 為 Vue 2 提供持續(xù)的更新和安全補(bǔ)丁,即使在 EOL 之后,這樣具有嚴(yán)格合規(guī)要求的應(yīng)用也能保持安全和合規(guī)。它還保證 Vue 2 應(yīng)用將在現(xiàn)代瀏覽器中繼續(xù)有效運(yùn)行,并與必要的庫(kù)(如 Nuxt、Vuex 和 Vuetify 2)保持兼容性。最后,Vue 2 NES 具有持續(xù)的安全監(jiān)控和 14 天的問(wèn)題解決服務(wù)水平協(xié)議(SLA)。
Vue 2 NES 是你在 Vue 2 LTS 期間享受的支持的延續(xù),而且是無(wú)限期的。有關(guān)更詳細(xì)的信息,可以訪問(wèn) HeroDevs Vue 2 NES 頁(yè)面:https://www.herodevs.com/support/nes-vue。
通知用戶 Vue 2 EOL 后的計(jì)劃
如果無(wú)法立即遷移到 Vue 3 或使用 Vue 2 NES,并仍然繼續(xù)使用Vue 2,可能需要考慮如何向客戶傳達(dá)你的 Vue 2 安全計(jì)劃。
注意,并非所有 Vue 用戶都適用于此情況,但許多團(tuán)隊(duì)因?yàn)榉?wù)水平協(xié)議(SLAs)、合同和協(xié)議等義務(wù)要求,禁止使用不受支持的軟件。這些要求可能來(lái)自于你的客戶、合規(guī)機(jī)構(gòu)或者公司內(nèi)部的各個(gè)部門(mén)。對(duì)于越來(lái)越多的行業(yè)來(lái)說(shuō),監(jiān)管機(jī)構(gòu)也對(duì)軟件創(chuàng)建者的責(zé)任提出了更高的期望。
如果需要遵守此類業(yè)務(wù)要求,那么可能需要向客戶、管理層、CISO 或其他相關(guān)利益相關(guān)者說(shuō)明你的支持計(jì)劃,以及如何處理潛在的 CVE 漏洞。盡管 Vue 2 過(guò)去沒(méi)有發(fā)現(xiàn)過(guò)重大漏洞,但即使是成熟的EOL項(xiàng)目,也有可能通過(guò)直接或間接受損的依賴關(guān)系出現(xiàn) CVE 漏洞。訂閱 OpenCVE[1] 和 Snyk[2] 等組織的 CVE 通知可以及時(shí)了解到漏洞的存在。瀏覽器也可能發(fā)布破壞傳統(tǒng)庫(kù)的更改,雖然這種情況很少見(jiàn),但確實(shí)會(huì)發(fā)生。
展望未來(lái)
當(dāng) Vue 2 最終到達(dá) EOL 時(shí),這將是一個(gè)令人感慨的時(shí)刻。Vue 3 生態(tài)系統(tǒng)正在蓬勃發(fā)展,不斷創(chuàng)新。Vue 3.4目前正在測(cè)試階段,編譯器和運(yùn)行時(shí)都有性能改進(jìn)。Vue 團(tuán)隊(duì)也正在 Vapor 模式方面取得良好進(jìn)展。Vue 2的結(jié)束只是一個(gè)新的開(kāi)始,2024 年將是 Vue 令人激動(dòng)的一年!
[1]OpenCVE: https://www.opencve.io/
[2]Snyk: https://snyk.io/