node 升级_Node.js 版本知多少?又该如何选择?
Node.js 曾出現(xiàn)過(guò)與 io.js 的分裂,自合并成立 Node.js 基金會(huì)以來(lái),就開(kāi)始使用 Long Term Support(LTS)來(lái)規(guī)劃版本發(fā)布,其目的也是為了 Node.js 的版本發(fā)布能夠有條不絮,這樣開(kāi)發(fā)者才能更好的選擇。
作者簡(jiǎn)介:五月君,Nodejs Developer,熱愛(ài)技術(shù)、喜歡分享的 90 后青年,「Nodejs技術(shù)棧」,Github 開(kāi)源項(xiàng)目 https://www.nodejs.red
為什么版本更迭這么快?
不知道你有沒(méi)有過(guò)疑惑?為什么 Node.js 的版本更迭的這么快,其實(shí)它并不是 “我攢了一些功能,然后我就可以放大招了,這樣子”,Node.js 的版本發(fā)布遵循了兩條發(fā)布線,分別為每年 10 月發(fā)布奇數(shù)(9, 11...)版本,次年 4 月發(fā)布偶數(shù)(10, 12...)版本,因此它是以時(shí)間線的流逝為準(zhǔn),在保證兼容性的前提下進(jìn)行發(fā)布,而不是以我增加了多少特性為準(zhǔn)進(jìn)行發(fā)布。除了 Node.js 之外,目前主流的瀏覽器、ECMAScript 標(biāo)準(zhǔn)、C++ 也是遵從這樣的原則,以時(shí)間跨度為基準(zhǔn)。
你需要先清楚的幾個(gè)術(shù)語(yǔ)
- CURRENT:指代最新的 Node.js 版本系列(單數(shù))。
- Active:指正在積極維護(hù)和升級(jí)的版本系列,包括向后移植非破壞性功能和改進(jìn),解決錯(cuò)誤以及修補(bǔ)安全漏洞。
- Maintenance:這是一個(gè)維護(hù)的 LTS 版本系列,直到它的生命周期終止,只會(huì)在短時(shí)間內(nèi)收到錯(cuò)誤修復(fù)和安全補(bǔ)丁。
- LTS:是 Long-Term Support 的縮寫,代表 Node.js 長(zhǎng)期支持的版本(版本號(hào)為復(fù)數(shù))。
- EOL:EOL 是 End of Life 的首字母縮寫,進(jìn)入到 EOL 時(shí)間線的版本,將不在維護(hù)。
版本的生命周期
讓我們看下 Node.js 版本的生命周期是怎么樣的?首先要知道每年的 4 月、10 月分別發(fā)布偶數(shù)、奇數(shù)版本,下面是過(guò)程說(shuō)明:
- 最近的一個(gè)偶數(shù)版本在 4 月份發(fā)布之后會(huì)持續(xù) 6 個(gè)月。
- 待 10 月份會(huì)發(fā)布一個(gè)奇數(shù)版本,最近的偶數(shù)版本會(huì)進(jìn)入 Active LTS 版本持續(xù)時(shí)間為 18 個(gè)月,這期間幾乎不會(huì)有不兼容的大功能更新,開(kāi)發(fā)者也可以放心升級(jí)到 Active LTS 版本。
- 18 個(gè)月的 Active LTS 版本到期后,會(huì)進(jìn)入 Maintenance LTS 版本,也就是進(jìn)入維護(hù)期,時(shí)間為 12 個(gè)月,在這期間僅進(jìn)行安全、Bug 更新。
- 一旦 Maintenance LTS 版本 12 個(gè)月的時(shí)間已到就會(huì)進(jìn)入 EOL 版本,正式退出歷史舞臺(tái)。
生命周期圖
發(fā)布時(shí)間表
以下為 Node.js 的發(fā)布時(shí)間表,當(dāng)前時(shí)間(2019-08-05)所支持的版本,由此可看出在今年(2019 年)退出舞臺(tái)的是 8.x 版本。
不知道你沒(méi)有注意到在 LTS 版本的后面有個(gè) Codename 一列,這是一個(gè) LTS 代號(hào),來(lái)自于元素周期表(初中應(yīng)該學(xué)過(guò)的)。可以看到 8.x 版本代號(hào)為 Carbon(碳)、10.x 版本代號(hào)為 Dubnium(?)
已退出歷史舞臺(tái)的版本
以下展示了已經(jīng)退出歷史舞臺(tái)的 Node.js 版本,可以看到第一個(gè) LTS 版本為 4.x 發(fā)布于 2015 年。
開(kāi)發(fā)者如何選擇
讀完以上內(nèi)容,我們已經(jīng)對(duì) Node.js 的版本有了一定的認(rèn)識(shí),這里總結(jié)下,做為一個(gè)開(kāi)發(fā)者我們?nèi)绾稳ミx擇?
測(cè)試環(huán)境
測(cè)試環(huán)境我們可以去嘗試一些新特性,做一些實(shí)驗(yàn)性的項(xiàng)目,比如可以體驗(yàn)下 ECMAScript 的最新規(guī)范、以及 V8 頻繁更新帶來(lái)的性能等,奇數(shù)版本會(huì)在每年的 10 月份進(jìn)行發(fā)布,但是要注意,奇數(shù)版本的維護(hù)周期僅有 8 個(gè)月,在兼容性方面不會(huì)向 LTS 版本那樣有所保證,引入生產(chǎn)項(xiàng)目要謹(jǐn)慎。
生產(chǎn)環(huán)境
生產(chǎn)環(huán)境最重要的是穩(wěn)定,這是我們選擇版本的前提條件,因此我們可以在每年發(fā)布 Active LTS 版本的時(shí)候進(jìn)行跟進(jìn)升級(jí),LTS 總共的時(shí)間為 Active LTS 的 18 個(gè)月 + Maintenance LTS 的 12 個(gè)月,合計(jì)為 30 個(gè)月的時(shí)間,最遲也不要超過(guò)這個(gè)最大時(shí)間才更新。因?yàn)橐粋€(gè)版本一旦退出歷史舞臺(tái),后續(xù)出現(xiàn)什么安全問(wèn)題或者 Bug 也是沒(méi)人在修復(fù)的。
Reference
- https://github.com/nodejs/Release
- Understanding How Node.js Release Lines Work
- Node.js 版本選擇和 LTS 計(jì)劃
總結(jié)
以上是生活随笔為你收集整理的node 升级_Node.js 版本知多少?又该如何选择?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: blockUI应用到Asp.Net页面时
- 下一篇: mysql添加远程登陆权限及mysql远