3 分钟掌握 Node.js 版本的区别

2023-10-27

在我们日常开发中,Node.js 使用场景越来越多,大到服务端项目,小到开发工具脚本,所以掌握 Node.js 一些基础知识是非常有必要的。 今天主要聊一下 Node.js 中 LTS 和 Current 的区别和如何选择合适的版本。

一、版本介绍

在官网上可以看到 Node.js 有 LTS 系列和 Current 系列,分别对应不同的最新版本号。

(本图来自:Node.js

Node.js 的版本号命名遵循语义化版本(Semantic Versioning),统一版本号表示规则,该规则规定了版本号如何表示,如何增加,如何进行比较,不同的版本号意味着什么。

版本格式:主版本号.次版本号.修订号

  • 主版本号(major):当你做了不兼容的 API 修改,
  • 次版本号(minor):当你做了向下兼容的功能性新增,可以理解为Feature版本,
  • 修订号(patch):当你做了向下兼容的问题修正,可以理解为Bug fix版本。

二、LTS 版本

LTS 版本全称 Long Time Support,即长期支持版本,重点在于稳定性和安全性,每个 LTS 版本的大版本号都是偶数,建议首次下载以及后续的每次升级都选择 LTS 版本,减少开发过程中出现的未知问题。 LTS 版本有 3 个阶段的生命周期:

生命周期 含义 说明
Active 活跃阶段 每个从 Current 进入 LTS 的偶数版本,都会有 18 个月的时间被积极维护和升级。
Maintenance 维护阶段 活跃阶段达到 18 个月后,会进入为期 12 个月的维护阶段,期间只会进行错误修复和安全补丁。
End of Life 结束阶段 简称 EOL ,在维护阶段达到期限之后,该版本进入 EOL 阶段,将不再维护,也就是说,每个 LTS 版本最长会有 30 个月的维护时间,之后将不再进行维护。

版本的生命周期图(2022-2025):

(图片来自:Nodejs)

三、Current 版本

Current 即最新发布版本,该版本专注于必要功能的开发和现有 API 的完善,具有较短的寿命和更频繁的代码更新。 你可以在该版本体验到最新功能,也可以能遇到各种意想不到的问题和兼容性要处理。 通常 Current 版本会在每 6 个月发布一次大版本(特殊情况除外):

  • 每年 4 月份发布新的偶数版本;
  • 每年 10 月份发布新的奇数版本。

(图片来自:Nodejs releases

详细的版本更新记录,可以查看Node.js releases

四、如何选择合适的版本?

  • 使用 LTS 版本

一般用于生产环境,重点在于稳定,如果你需要稳定性并拥有复杂的生产环境(例如中型或大型企业),建议使用 LTS 版本。

  • 使用 Current 版本

一般用于测试环境,如果你是为了尝试新的版本和新特性(比如 ECMAScript 新特性),或者能够在不干扰环境的情况下快速轻松地升级版本,建议使用 Current 版本。

五、总结

本文主要聊一下 Node.js 中 LTS 和 Current 的区别和如何选择合适的版本,在实际开发中,并不需要及时更新到最新版本,我们完全可以按照项目技术栈依赖的最低 Node.js 版本决定是否升级,如果条件允许,还是建议至少把大版本升级到最新的 LTS 版本。

最后

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,有需要的小伙伴,可以【点下方卡片】免费领取:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

3 分钟掌握 Node.js 版本的区别 的相关文章

  • 将 Javascript 变量转换为 PHP 变量

    我想使用由 videoel getCurrentTime 函数返回给我的 javascript 变量 并将其转换为 php 变量 以便我能够将其添加到我的 SQL 插入查询中 例如 INSERT INTO tblData VALUES ph
  • 获取 Node.js npm 命令以在公司代理后面工作

    我正在尝试安装凉亭 npm install g 鲍尔 但我从我们的代理收到身份验证错误 npm http 407http registry npmjs org bower http registry npmjs org bower 错误代码
  • React 渲染中的不变违规或 React 中迭代和返回的正确方法

    我在 React 渲染中遇到了持续存在的问题 这段代码 jsx React DOM var AnswerRows React createClass componentDidMount function render function th
  • 通知用户消息仍在输入中

    我正在使用 Laravel 5 6 7 Socket IO 和 vue js 我没有使用 Pusher 和 redis 下面是我的代码 用于向与我一对一聊天的用户发送消息 var url http localhost 6001 apps M
  • 如何从表中选择所有偶数 id?

    我想从 MySQL 数据库的表中选择所有甚至帖子 ID 然后显示它们 我还想获取所有带有奇怪 id 的帖子并将它们显示在其他地方 我想使用 PHP 来完成此操作 因为这是我使用的服务器端语言 或者 我是否必须选择所有帖子 然后使用 Java
  • 如何在 Node.js 中让一个 EventEmitter 监听另一个 EventEmitter?

    我想做这样的事情 var events require events var emitterA new events EventEmitter var emitterB new events EventEmitter emitterA ad
  • JavaScript 变量赋值与 OR 对比 if 检查[重复]

    这个问题在这里已经有答案了 在 JavaScript 中 我最近意识到你可以使用 OR 赋值的逻辑运算符 我想知道这是否被认为是不好的做法 特别是 我有一些具有可选数组输入的函数 如果输入是null or undefined我应该将它设置为
  • 是否可以将反应组件导出为非反应项目中的函数

    有没有办法在非 React 项目中将 React 组件导出为函数并传入 props 作为函数的参数 我最近用 create react app 完成了一个 React 项目 现在我想将它用于其他非 React 项目 纯 Javascript
  • 从未定义解构时避免错误

    可以说我有这个代码 const x y point Babel 会将其变成 var point point x point x y point y 这很好 但是如果点未定义怎么办 现在我得到一个错误 Cannot read property
  • Bing.com 如何创建放大的缩略图?

    当我使用 Bing com 搜索图像时 我发现它们的图像经过精心裁剪和排序 当您将鼠标放在图像上时 会弹出另一个窗口 其中显示放大的图像 我想在我的程序中做同样的事情 我检查了他们页面的源代码 他们正在使用 javascript 但我仍然不
  • 提交前验证表单(比检查空字段更复杂)

    我有一个包含时间输入的表单 具体来说 开放时间和结束时间 当按下提交按钮时 它会转到一个 php 页面 其中这些输入将添加到数据库中 在允许提交表单之前我想检查一些事情 例如 我想确保开始时间早于 小于 结束时间 这是表格 Opens
  • 空 URL 哈希导致页面在 js 事件上跳转

    我有一个带有下一个和上一个按钮的照片库 如果我的某个 javascript 方法由于某种原因被破坏 那么当单击其中一个按钮时 它会向 url 添加一个哈希值 即 www google com 我知道可以给散列一个 div id 来跳转到页面
  • setInterval 内的返回值

    我想在 setInterval 内返回一个值 我只想以一定的时间间隔执行一些操作 这就是我尝试过的 function git limit var i 0 var git setInterval function console log i
  • 理论上防止 WebSocket 中第一个收到的消息丢失

    服务器端代码发送消息立即地连接打开后 它向客户端发送初始配置 问候语 以下代码是在客户端 var sock new WebSocket url sock addEventListener error processError sock ad
  • RTCDataChannel发送方法不发送数据

    我的 RTCDataChannel 遇到一个奇怪的问题 我正在对 WebRTC 进行一些研究 并且已经可以进行 WebRTC 音频 视频聊天 现在我想使用 RTCDataChannel 添加文本聊天和文件共享 我已经像这样创建了 RTCDa
  • 为什么我需要 $(document.body) 来使用 Mootools Element 方法扩展 document.body?

    因此 在尝试让我的应用程序在最新的 IE 上运行后 结果发现 IE 不喜欢以下代码 document body getElement className Firefox 和 Chrome 响应良好 但是document bodyIE 上没有
  • Nodejs MaxListenersExceeded警告

    我有一个错误 我不知道如何解决它 这种情况只发生几次 错误信息 node 9140 MaxListenersExceededWarning Possible EventEmitter memory leak detec ted 11 err
  • 错误:创建 React Native 项目版本 0.59.9 时找不到 template.config.js

    当我尝试创建 React Native 项目版本 0 59 9 时 出现以下错误 错误错误 无法在 react native 模板中找到 var folders zc h93bvpb573q24 5ynvgkn1wc0000gn T rnc
  • 如何根据所需表单输入的值更改 CSS 样式

    我想知道如何编写 javascript 来改变所需的表单元素的样式 如果它们有价值的话就改变它们 我想要做的是当所需的文本字段为空时 在它们周围有一个彩色边框 并在它们有值时删除边框样式 我想做的是编写一个 javascript 函数来检查
  • 使用 Lodash 将对象键转换为具有键值数量的数组[重复]

    这个问题在这里已经有答案了 我有一个产品对象 products bread 1 milk 2 cheese 2 chicken 1 我想要一个包含产品名称的数组 如下所示 products bread milk milk cheese ch

随机推荐

  • PCL学习笔记:PCL的初次安装和使用。

    注 资料来源 D 项目资料 YC 激光扫描建模 长沙项目 2016 2019 2017 2018 文档资料 技术总结YC 201703 YC 激光建模技术总结 201703及以后 docx 目录 A PCL的初步安装及测试 0 安装平台 1
  • Ubuntu换源+VMware Tools安装

    Contents 1 Ubuntu20 04换国内源 1 1 备份文件 1 2 修改配置文件 1 3 更新 2 VMware Tools安装 2 1 解决安装VMwareTools显示灰色 2 2 正式安装 复制压缩文件至 opt 切换为r
  • python的cls,self,classmethod,staticmethod

    python的cls self classmethod staticmethod python类里会出现这三个单词 self和cls都可以用别的单词代替 类的方法有三种 一是通过def定义的 普通的一般的 需要至少传递一个参数 一般用sel
  • 【满分】【华为OD机试真题2023 JAVA&JS】最差产品奖

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 最差产品奖 知识点滑窗 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 A公司准备对他下面的N个产品评选最差奖 评选的方式是首先对每个产品进行评分 然后根据评分区
  • Chapter 1 Introduction

    Chapter 1 Introduction focus on communication and queueing systems formulated problem optimize the time averages of cert
  • 使用python实现短线选股

    经常做短线的朋友都知道 选股是个较为复杂的工作 尤其是像我们这种非职业选手 下面就分享一些通过python实现选股的思路 股票信息获取 炒短线离不开龙虎榜 我们先来通过龙虎榜来进行股票选择 url https applhb longhuvi
  • 数据结构和算法(5)-----树

    一 哈夫曼树 基本介绍 给定n个权值作为n个叶子结点 构造一棵二叉树 若该树的带权路径长度 wpl 达到最小 称这样的二叉树为最优二叉树 也称为哈夫曼树 Huffman Tree 还有的书翻译为霍夫曼树 赫夫曼树是带权路径长度最短的树 权值
  • 【JS算法系列】1.翻转字符串的四种方法

    1 使用数组的 reverse 方法 let str hello let reversed str split reverse join olleh 2 从字符串的尾部开始迭代 并逐个添加字符到新的字符串中 let str hello le
  • qt打包应用程序

    cannot find gcc installation directory g exe must be in the path http t csdn cn d5yaf
  • 期权酱也来说说期权双卖策略原理

    期权option 又称选择权 是一类衍生品合约 买方支付权利金给卖方之后 买方有权在未来的特定日期或之前 以特定的价格向卖方买入或卖出标的资产的权利 下文介绍期权酱也来说说期权双卖策略原理 本文来自 期权酱 期权的本质简单说就是买方支付权利
  • 自己挖坑自己填,谷歌大改Transformer注意力,速度、内存利用率都提上去了

    点击上方 AI遇见机器学习 选择 星标 公众号 重磅干货 第一时间送达 来自 机器之心 考虑到 Transformer 对于机器学习最近一段时间的影响 这样一个研究就显得异常引人注目了 Transformer 有着巨大的内存和算力需求 因为
  • 挖掘机整体(2012.11.30)

    将近1周 终于把整体搞定了 这周的问题所在就是由于 180 ANGLE或者180 ANGLE的余弦值都相同 所以才会来回晃 我用了ASINF反正弦
  • Spring 框架学习—控制反转(IOC)

    Spring是一个开源框架 Spring是于2003 年兴起的一个轻量级的Java 开发框架 由Rod Johnson创建 简单来说 Spring是一个分层的JavaSE EEfull stack 一站式 轻量级开源框架 主要用于降低模块之
  • C#编程中的报错解决System.InvalidOperationException

    C 编程中的报错解决System InvalidOperationException 问题场景 问题原因 解决方案 方案一 打破规则 方案二 利用委托 Delegate 问题场景 在C Windows GUI编程中 从某个子线程去访问设计器
  • 计算机类毕业设计优秀最新题目

    主要有以下类别 python c语言 c vc opencv opengl程序设计 单片机类 51 stm32 arduino arm avr 龙芯开发板 嵌入式系统等硬件设计 程序设计 protues仿真 下列题目涵盖但不限于以上内容 4
  • 【Unity】渐入渐出的黑屏(白屏)过场动画最简单的实现

    一个简单的黑屏动画 用于2D项目 效果类似慢眨眼 进 出房间时切换场景的衔接过渡 这种效果的实现方式其实蛮多的 我能想到的包括用shader 用一张全黑Sprite覆盖屏幕 或者直接做成一个UI 最近学了一些UnityShader 所以首先
  • html title 属性多行显示

    html global attribute title displays in multiple lines 下面的代码段主要是展现了4种方式让 title 属性的多行展示 经测试 至少兼容到了 ie8
  • java JDBC

    JDBC是什么 Java DataBase Connectivity Java语言连接数据库 JDBC的本质是什么 一套接口 JDBC是SUN公司制定的一套接口 interface 接口都有调用者和实现者 面向接口调用 面向接口写实现类 这
  • Golang笔记:使用exec包执行外部程序与Shell命令

    文章目录 目的 使用演示 Cmd结构体 总结 目的 程序中执行外部程序是比较常用的功能 Golang执行外部程序可以使用标准库中的 os exec https pkg go dev os exec 这个包默认是用来执行外部程序的 可以通过调
  • 3 分钟掌握 Node.js 版本的区别

    在我们日常开发中 Node js 使用场景越来越多 大到服务端项目 小到开发工具脚本 所以掌握 Node js 一些基础知识是非常有必要的 今天主要聊一下 Node js 中 LTS 和 Current 的区别和如何选择合适的版本 一 版本