搜尋
首頁web前端前端問答nodejs的lts和current有什麼差別

nodejs的lts和current有什麼差別

Nov 05, 2021 pm 04:33 PM
currentltsnodejs

區別:Current指的是目前發布的最新node版本,裡麵包含了最新的功能特性,但會不穩定,會不定期的進行更新優化或修復問題;而LTS指的是長期支持的node版本,即穩定版,裡麵包含的功能就是穩定的。

nodejs的lts和current有什麼差別

本教學操作環境:windows7系統、nodejs 12.19.0版,DELL G3電腦。

進入到nodejs官網下載https://nodejs.org ,有兩個版本LTS和Current。有什麼區別呢?該選哪個呢。當然知道差別就知道要選什麼版本了。

LTS和Current差別總結:其實從版本號碼就可以看出一個新一個老。 Current就是目前最新的版本,最新的功能特性都在這裡了。就是拿來給你試用測試的,要是大家都用得還好,功能穩定了,就發佈到LTS版本。所以LTS就是穩定版。

nodejs的lts和current有什麼差別

就扯下nodejs的版本計畫

#Node.js LTS 計畫

Node.js core 在Node.js 與io.js 合併後,為了確保發布穩定有序,讓開發者能夠合理安排升級,開始使用LTS(Long Term Support)來規劃發布週期。第一個 LTS 版本是 v4,發佈於 2015 年 10 月。在這個規劃下,Node.js 的版本相當於master 分支在特定時間下經過穩定化處理的快照,時間到了就將master 分支上穩定的部分整合起來,發布新的版本,因此Node.js 的發布是以時間的流逝為準,在保證相容性靠攏的前提下跳版本,而不是以相容性和新特性的多少為準,這也解釋了為什麼Node.js 的版本看上去跳得那麼快(不是“啊,我們存了這麼多招,可以發新版了!」而是「啊,四月到了該發版了,我們把攢過的大招過一遍,看有什麼夠穩定能加進去的,雖然可能這些招不怎麼大就是了……」)。值得一提的是,目前的常青瀏覽器/主流 JavaScript 引擎/ECMAScript 標準/C 標準也是採用類似的原則,以時間跨度為基準,從主幹上截取穩定特性來進行發布的。

每一個 LTS 都會有一個代號,從元素週期表取元素名,並依照字母表排序,挑選出適合的。 v4 的代號是 Argon(氬),v6 的代號是 Boron(硼)。

Node.js 的版本命名規則遵循語意化版本(Semantic Versioning),版本號分為三部分,第一個數字(semver-major)增加,表示有不相容的改變;第二個數字(semver-minor)增加,表示有保持相容的新特性;第三個數字(semver-patch)增加,表示有在保持相容性與特性不變的前提下的改動,例如修復了bug 或者改進了文件.這個命名規則有利也有弊,此處不贅述,但它的一些矛盾之處使得Node.js 的命名有一些例外,比如安全更新即使會導致不相容,為了能夠更新到所有major 版本,也依然是semver -minor。

Node.js 應用程式開發者怎麼選擇?

對於追求穩定性的Node.js 應用開發者來說,只需要每年十月一個版本成為active LTS 的時候線上跟進升級即可,也就是每12個月升一次major 版本,每次升級的版本還有18 個月12 個月的壽命,中間跟進minor 和patch 的時候不用太擔心相容問題。目前的推薦是最好在一個 active LTS 出來的 12 個月內完成線上的升級(因為 12 個月後會出下一個 active LTS)。進度落後的話,妥協到 18 個月,這個 LTS 的 active 時期結束前也可以。再趕不上,起碼要在 30 個月內這個版本結束壽命之前升級完,否則連安全更新也沒有了。

擔心直接升級遇到的兼容問題較多的話,則可以在每年四月偶數版本新出來的時候,提前在線下進行測試和升級準備,將問題反饋到社區(當然如果沒空也不需要管這一步驟),並不斷跟進,十月再升線上版本。這樣線上下都是 12 個月升一次 major,只不過時間點不同。雖然線下需要跟進的兼容性問題多了一些,但同時也可以透過回饋讓自己的相容性需求被社群照顧到。

熱衷於嘗試新特性,或不在生產環境使用的實驗性項目,則可以嘗試每年十月發布的奇數 major 版本。每個奇數版本只會維護8 個月,而且不會有像LTS 那樣的兼容性保證,但Node.js 的開發者會利用這個版本為下一個LTS 做準備,因此它會有更多大膽的嘗試,例如更頻繁的v8 更新(意味著更多的ECMAScript 新特性實作以及效能最佳化)。

因此,現在還在線上使用 v4.x 的開發者,已經可以準備升級到 v6.x 了。如果你的線上應用程式還在使用LTS 計畫啟用前發布的版本,如v0.12.x,也最好抓緊升級到v4.x 或以上,因為2016 年12 月之後v0.12.x 將不會再有任何安全性更新,更早的版本就更沒有了,主要是OpenSSL 的漏洞將不會被修復,這些應用程式將會暴露在各種安全風險之下。一旦升級到 v4.x 或更高,今後的升級將會相對容易許多,平時只要記得跟進 minor 或者 patch 即可,或者懶一點的只需要關注安全更新。

這跟 Node.js 的原始碼是怎麼對應的?

首先,Node.js 的 Github Repo 有一個 master 分支,大部分的 commit 是透過 PR 提交到這個分支上的。根據這些 commit 是否改變了相容性或引入了新特性,它們會被打上 semver-major 或 semver-minor 的標籤。

在每年四月前需要準備 LTS 的時候,Node.js 會從 master 分支截取一個新的分支出來,假如這個是 v6,那麼這個分支就叫 v6.x-staging 。之後與這個 LTS 相關的修改/打算進入這個 LTS 的修改,例如 bug 修復等,還是提交 PR 到 master ,但需要加一個 tag lts-watch-v6.x 。被合併到 master 之後,這些變動會被負責發布的人挑出來,合併到 v6.x-staging 。當到了四月的某一天,v6 的第一個版本可以發布的時候,負責發布的人會創建一個 v6.x 分支,從 v6.x-staging 再挑出變更合併進來。從四月到十月,所有 v6 的修改,無論是 minor 或 patch,依然先提交 PR 到 master ,然後再被挑出來合到 v6.x-staging ,發版本時再進入 v6.x 。這樣,master 總是保留著最新的變動。而其他版本相關的分支,都是從master 上挑出適合發版本的commit,混合出來的縮影, v6.x-staging 保留著v6.x LTS 相關的修改, v6.x 保留每一次v6 發布的版本。除了負責處理分支的人以外,其他開發者是不會動這些版本相關的分支的。

【推薦學習:《nodejs 教學》】

以上是nodejs的lts和current有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
React與後端框架:比較React與後端框架:比較Apr 13, 2025 am 12:06 AM

React是前端框架,用於構建用戶界面;後端框架用於構建服務器端應用程序。 React提供組件化和高效的UI更新,後端框架提供完整的後端服務解決方案。選擇技術棧時需考慮項目需求、團隊技能和可擴展性。

HTML和React:標記與組件之間的關係HTML和React:標記與組件之間的關係Apr 12, 2025 am 12:03 AM

HTML和React的關係是前端開發的核心,它們共同構建現代Web應用的用戶界面。 1)HTML定義內容結構和語義,React通過組件化構建動態界面。 2)React組件使用JSX語法嵌入HTML,實現智能渲染。 3)組件生命週期管理HTML渲染,根據狀態和屬性動態更新。 4)使用組件優化HTML結構,提高可維護性。 5)性能優化包括避免不必要渲染,使用key屬性,保持組件單一職責。

反應與前端:建立互動體驗反應與前端:建立互動體驗Apr 11, 2025 am 12:02 AM

React是構建交互式前端體驗的首選工具。 1)React通過組件化和虛擬DOM簡化UI開發。 2)組件分為函數組件和類組件,函數組件更簡潔,類組件提供更多生命週期方法。 3)React的工作原理依賴虛擬DOM和調和算法,提高性能。 4)狀態管理使用useState或this.state,生命週期方法如componentDidMount用於特定邏輯。 5)基本用法包括創建組件和管理狀態,高級用法涉及自定義鉤子和性能優化。 6)常見錯誤包括狀態更新不當和性能問題,調試技巧包括使用ReactDevTools和優

React和前端堆棧:工具和技術React和前端堆棧:工具和技術Apr 10, 2025 am 09:34 AM

React是一個用於構建用戶界面的JavaScript庫,其核心是組件化和狀態管理。 1)通過組件化和狀態管理簡化UI開發。 2)工作原理包括調和和渲染,優化可通過React.memo和useMemo實現。 3)基本用法是創建並渲染組件,高級用法包括使用Hooks和ContextAPI。 4)常見錯誤如狀態更新不當,可使用ReactDevTools調試。 5)性能優化包括使用React.memo、虛擬化列表和CodeSplitting,保持代碼可讀性和可維護性是最佳實踐。

React在HTML中的作用:增強用戶體驗React在HTML中的作用:增強用戶體驗Apr 09, 2025 am 12:11 AM

React通過JSX與HTML結合,提升用戶體驗。 1)JSX嵌入HTML,使開發更直觀。 2)虛擬DOM機制優化性能,減少DOM操作。 3)組件化管理UI,提高可維護性。 4)狀態管理和事件處理增強交互性。

REACT組件:在HTML中創建可重複使用的元素REACT組件:在HTML中創建可重複使用的元素Apr 08, 2025 pm 05:53 PM

React組件可以通過函數或類定義,封裝UI邏輯並通過props接受輸入數據。 1)定義組件:使用函數或類,返回React元素。 2)渲染組件:React調用render方法或執行函數組件。 3)復用組件:通過props傳遞數據,構建複雜UI。組件的生命週期方法允許在不同階段執行邏輯,提升開發效率和代碼可維護性。

反應嚴格模式目的反應嚴格模式目的Apr 02, 2025 pm 05:51 PM

React嚴格模式是一種開發工具,可通過激活其他檢查和警告來突出反應應用中的潛在問題。它有助於識別遺產代碼,不安全的生命週期和副作用,鼓勵現代反應實踐。

反應碎片使用反應碎片使用Apr 02, 2025 pm 05:50 PM

React片段允許將兒童分組而沒有額外的DOM節點,增強結構,性能和可訪問性。他們支持鑰匙以進行有效的列表渲染。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器