习惯成自然是个魔术师。它对美丽的东西是残酷的,但是对丑陋的东西却是仁慈的。——威达

Node.js 曾出现过与 io.js 的分裂,自合并成立 Node.js 基金会以来,就开始使用 Long Term Support(LTS)来规划版本发布,其目的也是为了 Node.js 的版本发布能够有条不絮,这样开发者才能更好的选择。

作者简介:五月君,Nodejs Developer,热爱技术、喜欢分享的 90 后青年,「Nodejs技术栈」,Github 开源项目 https://www.nodejs.red

为什么版本更迭这么快?

不知道你有没有过疑惑?为什么 Node.js 的版本更迭的这么快,其实它并不是 “我攒了一些功能,然后我就可以放大招了,这样子”,Node.js 的版本发布遵循了两条发布线,分别为每年 10 月发布奇数(9, 11...)版本,次年 4 月发布偶数(10, 12...)版本,因此它是以时间线的流逝为准,在保证兼容性的前提下进行发布,而不是以我增加了多少特性为准进行发布。除了 Node.js 之外,目前主流的浏览器、ECMAScript 标准、C++ 也是遵从这样的原则,以时间跨度为基准。

你需要先清楚的几个术语

  • CURRENT:指代最新的 Node.js 版本系列(单数)。

  • Active:指正在积极维护和升级的版本系列,包括向后移植非破坏性功能和改进,解决错误以及修补安全漏洞。

  • Maintenance:这是一个维护的 LTS 版本系列,直到它的生命周期终止,只会在短时间内收到错误修复和安全补丁。

  • LTS:是 Long-Term Support 的缩写,代表 Node.js 长期支持的版本(版本号为复数)。

  • EOL:EOL 是 End of Life 的首字母缩写,进入到 EOL 时间线的版本,将不在维护。

版本的生命周期

让我们看下 Node.js 版本的生命周期是怎么样的?首先要知道每年的 4 月、10 月分别发布偶数、奇数版本,下面是过程说明:

  • 最近的一个偶数版本在 4 月份发布之后会持续 6 个月。

  • 待 10 月份会发布一个奇数版本,最近的偶数版本会进入 Active LTS 版本持续时间为 18 个月,这期间几乎不会有不兼容的大功能更新,开发者也可以放心升级到 Active LTS 版本。

  • 18 个月的 Active LTS 版本到期后,会进入 Maintenance LTS 版本,也就是进入维护期,时间为 12 个月,在这期间仅进行安全、Bug 更新。

  • 一旦 Maintenance LTS 版本 12 个月的时间已到就会进入 EOL 版本,正式退出历史舞台。

生命周期图

发布时间表

以下为 Node.js 的发布时间表,当前时间(2019-08-05)所支持的版本,由此可看出在今年(2019 年)退出舞台的是 8.x 版本。

不知道你没有注意到在 LTS 版本的后面有个 Codename 一列,这是一个 LTS 代号,来自于元素周期表(初中应该学过的)。可以看到 8.x 版本代号为 Carbon(碳)、10.x 版本代号为 Dubnium(?)

已退出历史舞台的版本

以下展示了已经退出历史舞台的 Node.js 版本,可以看到第一个 LTS 版本为 4.x 发布于 2015 年。

开发者如何选择

读完以上内容,我们已经对 Node.js 的版本有了一定的认识,这里总结下,做为一个开发者我们如何去选择?

测试环境

测试环境我们可以去尝试一些新特性,做一些实验性的项目,比如可以体验下 ECMAScript 的最新规范、以及 V8 频繁更新带来的性能等,奇数版本会在每年的 10 月份进行发布,但是要注意,奇数版本的维护周期仅有 8 个月,在兼容性方面不会向 LTS 版本那样有所保证,引入生产项目要谨慎。

生产环境

生产环境最重要的是稳定,这是我们选择版本的前提条件,因此我们可以在每年发布 Active LTS 版本的时候进行跟进升级,LTS 总共的时间为 Active LTS 的 18 个月 + Maintenance LTS 的 12 个月,合计为 30 个月的时间,最迟也不要超过这个最大时间才更新。因为一个版本一旦退出历史舞台,后续出现什么安全问题或者 Bug 也是没人在修复的。

Reference

  • https://github.com/nodejs/Release

  • Understanding How Node.js Release Lines Work

  • Node.js 版本选择和 LTS 计划

往期精彩回顾

  • Node.js进阶之进程与线程

  • Node.js 是什么?我为什么选择它?

  • Node.js 中的缓冲区(Buffer)究竟是什么?

  • Node.js + Consul 实现服务注册、健康检查、配置中心

在看点这里

win7 能下node什么版本_Node.js 版本知多少?又该如何选择?相关推荐

  1. node 升级_Node.js 版本知多少?又该如何选择?

    习惯成自然是个魔术师.它对美丽的东西是残酷的,但是对丑陋的东西却是仁慈的.--威达 Node.js 曾出现过与 io.js 的分裂,自合并成立 Node.js 基金会以来,就开始使用 Long Ter ...

  2. mac怎么查node版本_Node.js 微服务实践:基于容器的一站式命令行工具链

    作者:个推Node.js 开发工程师 之诺 背景与摘要 由于工程数量的快速增长,个推在实践基于 Node.js 的微服务开发的过程中,遇到了如下问题: 1. 每次新建项目都需要安装一次依赖,这些依赖之 ...

  3. win7 能下node什么版本_微软从未公开的win10版本,3GB+极度精简,老爷机有救了

    在windows家族中,最好用的就是win7和XP系统.堪称经典,而且还是发展最成功的系统版本. 前几天韩博士也发布一篇关于XP系统的文章,评论区引发极大争论.大家众说纷纭,觉得XP系统是顺畅,但是很 ...

  4. node mysql 模块化_Node.js 模块系统

    Node.js模块系统 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之,一个 Node. ...

  5. Win7 PE下安装Windows7系统非GHOST版本【图文教程】

    大家都对Win PE不会太陌生吧?!那Win7 PE有试过吗?! 以前装的都是GHOST版的吧?!那今天不妨来试试安装原版的吧! 准备工具: UltraISO :[用于将Win7 PE.iso 写入U ...

  6. 合成 群组聊天头像,C# 版本 和 js 版本

    1.效果图:如下  C#版本 JS 版本 2,C#代码, const int fourSidedPixels = 134; /// <summary>/// 合成四边形图片/// < ...

  7. node windows更新_node.js 01 简介 - 产生,发展历程,优势,适用场景,实际应用

    node.js是什么 上面是来自于node.js 官网 (https://nodejs.org)的介绍.翻译过来,意思是node.js 基于JavaScript, 需要运行在Chrome V8 的 J ...

  8. node mysql 模块化_Node.js中的模块化

    每天一篇文章来记录记录自己的成长吧.大二,该静心了.加油~ 好了,废话不多说,今天说说nodejs中的模块化.(注:此文为自己对书nodejs实战的总结) nodejs一个重要的特性就是模块化,模块就 ...

  9. kewail node 短信_Node.js代码示例_Node.js短信短信 | 微米-中国领先的短信彩信接口平台服务商...

    Node.js短信接口一代码示例 请求 var http = require('http'); var querystring = require('querystring'); var postDa ...

最新文章

  1. Spring Cloud实战小贴士:Ribbon的饥饿加载(eager-load)模式
  2. python连接高斯数据库_Python加载数据并执行多高斯fi
  3. 如何用oracle查看内存使用情况,oracle运维08内存使用情况分析查看
  4. C# Regex 深入正则表达式
  5. Java 接口基础详解,java开发面试笔试题
  6. YOCTO项目介绍:通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统
  7. cocos2d-x之猜数字游戏
  8. 使用泛型, 写一个为任意类型的动态数组添加元素的方法
  9. pytorch bert文本分类_一起读Bert文本分类代码 (pytorch篇 三)
  10. PDF转CAD怎么弄?可以尝试一下这两种方法
  11. html微信长按保存图片vue,vue微信ios长按图片导致大面积被选择bug及其修复方案...
  12. spring boot启动报错: The APR based Apache Tomcat Native library which allows optimal performance
  13. 网络打印协议之LPR或RAW
  14. ENSP中ACL,NAT配置
  15. 设计用什么笔记本好?三大选择要点
  16. 微软发布免费的文件恢复工具Windows File Recovery
  17. java 借助modbus协议实现与硬件之间的通讯
  18. Linux定时任务与开机自启动脚本(cron与crontab)
  19. 电脑计算机显示调用失败和未执行,远程调用过程失败且未执行的详细处理方法...
  20. 三.数 据 链 路 层

热门文章

  1. 吵疯了,Pull Request到底是个啥?
  2. 特斯拉放弃SAP,仅25个人4个月就开发了整套ERP!就问你服不服?
  3. 智办事:高效的目标管理,让企业战略目标得以实现
  4. 通信网络设计(最小生成树+图的联通)
  5. putchar函数的基本格式
  6. 一次win10体验旅程
  7. 触摸屏与计算机通讯视频在线,MCGS触摸屏与电脑调试软件modbus通讯
  8. webgl三维观察综合实验_【CV现状-2】三维感知
  9. ubuntu16.04 sudo apt-get update解决Hash sum错误
  10. 抓小偷编程题目c语言,如何使用面相对象编程和c++实现:警察抓小偷的任务