如何选择Node.js版本

125 阅读3分钟

在说Node.js的版本之前,咱们先说一下Node.js到底是什么?Node.js是基于Chrome V8 Javascript引擎创建的一个Javascript运行环境。它使得Javascript可以在任何装有Node.js的操作系统上运行,可以操作文件、操作网络、系统层级的API调用。Node.js使得Javascript不再是一个被囚禁于浏览器中的脚本语言,它使Javascript得到了放飞,也使得前端技术得到了放飞。

快速选择版本

进入Node.js的官网首页,我们总是会看到两个版本的Node.js可供下载,一个是:xx.xx.xx LTS版本,另一个是:xx.xx.xx Current版本。LTS版本标注为“For Most Users”,Current版本标注为“Latest Features”,请看下图:

nodeversionscreenshot.png 照顾心急的同学,我先快速回答一下:大部分情况下,大家应该选择 LTS 版本

为什么说是”大部分情况下“呢,不心急的同学可以往下看。


## LTS和Current的解释 LTS和Current其实并不是版本,而是同一个主版本号的不同阶段(这里说的”主版本号“是指semver-major,熟悉NPM的通过学应该对semver不陌生)。

LTS: Long Term Support。该版本进入了漫长的维护期。它又分为两个阶段:Active LTS和Maintenance LTS。 从以往的发布历史看,LTS至少会被跟进2年时间,按照最新的官方网站的说法,Active LTS持续12个月,Maintenance LTS将会被持续维护18个月的时间。Node.js 12之前,active阶段持续18个月,maintenance阶段持续12个月。

Current: 一个新主版本号release后,先进入Current阶段,该阶段持续6个月,目的是给各个库(library)的作者时间来支持新版。偶数版本在Current阶段后进入LTS阶段,而奇数版本则终结不再维护

奇偶版本号

Node.js主版本号(semver-major)奇数版本和偶数版本有不同的生命周期。每隔6个月,社区会从Node.js master分支拉出一个分支作为主版本的release。偶数版本在4月发版,奇数版本则在十月。 奇数版本发版时,上一个偶数版本会进入LTS阶段,而奇数版本则只持续6个月的时间,则终结不再维护。

该如何选择版本

新项目

请选择最新的LTS阶段且为偶数的版本。 为什么要最新:Node.js发展迅速,至少到目前为止,每次新版都有很大的改进,所以尽量使用新版。 为什么要LTS:因为在你的项目运行的未来的很长一段时间里,如果Node.js被发现有严重的bug,会被修复,一些新的功能和向后兼容的优化也会被加入。因此当我们遇到Node.js的严重 bug时,我们在很长一段时间内还会得到Node.js社区的技术支持,我们也可以相对放心的进行次级版本号(semver-minor)的升级,而不用太担心有不能向后兼容的API改动。

第三方库的作者

当有处于Current阶段的新版发布时,需要利用这六个月时间对新版Node.js进行兼容。Current阶段就是为库的作者准备的。

老版本链接

Node.js的历史版本可以从这里找到:nodejs.org/en/download…

本篇到此结束。

参考文档

github.com/nodejs/Rele… nodejs.org/en/about/re…