Node.js 重大更新,你知道更新了啥?

开发 前端
Node.js 22 正式接替 Node.js 21,成为当前的发布主线。在接下来的六个月里,它将作为当前发布版(Current),直到2024 年 10 月,届时将转为活跃状态(Active)。

4 月 24 日,Node.js 发布了 v22。Node.js 22 的更新亮点包括使用require()来导入 ESM 模块、WebSocket 客户端、V8 JavaScript 引擎的更新等!

Node.js 22 正式接替 Node.js 21,成为当前的发布主线。在接下来的六个月里,它将作为当前发布版(Current),直到2024 年 10 月,届时将转为活跃状态(Active)。

下面就来看看 Node.js 22 的更新内容以及 Node.js 版本更新情况!

Node.js 版本说明

Node.js 的发布可以分为三个阶段:

  • Current(当前):包含大部分进入 nodejs/node 主分支的非主要(非破坏性)变更。
  • Active LTS(活跃长期支持):新功能、错误修复和经LTS团队审核后被确定适合该发布线路且稳定的更新。
  • Maintenance(维护):关键错误修复和安全更新。新功能可能会根据LTS团队的判断加入。通常只在新功能支持迁移到后续发布线路的情况下才会添加。

Node.js 奇数和偶数版本的区别如下:

  • 奇数版本适合在特定环境下进行早期功能测试,而偶数版本则适用于生产部署;
  • 偶数最终会成为 LTS 版本。而奇数版本也不会被提升为 LTS 版本,也就不会经历“Active LTS”和“Maintenance”阶段。
  • Node.js 每年 10 月发布奇数版本,次年 4 月发布偶数版本,

注意,Node.js 18 将于 2025 年 4 月停止维护,因此建议开始规划升级到Node.js 20(长期支持版本LTS)或即将成为LTS 的 Node.js 22。

Node.js 的发布计划如下:

图片图片

Node.js 22 更新内容

  • V8 JavaScript 引擎升级至 v12.4:该版本新增了WebAssembly垃圾回收、Array.fromAsync方法、Set方法增强以及迭代器助手等特性,为 Node.js 22带来更强大的性能和更丰富的功能。;
  • V8的Maglev编译器:现在已在支持的架构上默认启用,显著提升了短生命周期CLI程序的执行性能;
  • 使用 require() 来导入 ESM 模块:Node.js 22新增了对同步ESM进行require()操作的支持,通过启用实验性标志--experimental-require-module,开发者可以更加便捷地同时服务CJS和ESM用户,从而推动模块系统的统一和简化。当启用该实验性标志后,Node.js 22允许require()加载满足特定条件的ES模块,这些条件包括在package.json中明确标注为ES模块或具有.mjs扩展名,并且模块中不包含顶层await,确保加载过程完全同步。这一改进使得require()能够像动态import()那样加载ES模块,并直接返回模块命名空间对象,为开发者提供了更高的灵活性和便利性。
  • 运行package.json脚本:Node.js 22引入了实验性功能,允许通过命令行标志node --run <script-in-package-json>执行package.json中的脚本,并支持node --run test来执行测试命令,为开发者提供了更便捷的方式来运行和管理项目脚本。
  • 观察模式:观察模式(node --watch)已稳定,该模式能够在文件变化时自动重启Node.js进程,方便开发者在开发过程中实时查看代码更改的效果。
  • WebSocket:默认启用了与浏览器兼容的WebSocket实现,此前需要通过--experimental-websocket标志启用。这一改变为Node.js提供了一个内置的WebSocket客户端,无需额外依赖,简化了 WebSocket 的使用。
  • 新增glob和globSync函数:在node:fs模块中添加了glob和globSync函数,用于模式匹配。开发者现在可以利用这些函数根据指定的模式匹配文件路径。
  • 优化AbortSignal实例的创建性能:提升了AbortSignal实例的创建效率,从而显著改善了fetch和测试运行器的性能。

责任编辑:武晓燕 来源: 前端充电宝
相关推荐

2024-04-07 00:00:00

ESlint命令变量

2020-12-28 19:13:11

Node.js后端框架

2021-11-16 08:51:29

Node JavaScript变量类型

2011-12-09 11:16:48

Node.js

2017-06-02 10:00:26

前端Node.js

2015-06-02 13:37:13

Node.jsWeb

2022-11-16 08:43:30

Node.js模块

2023-11-13 16:29:02

iOS 17苹果

2022-08-21 10:26:31

PyCharmPython

2023-10-18 10:10:29

Node.js 21前端

2020-12-30 11:22:11

Node.js前端模块

2022-09-04 15:54:10

Node.jsAPI技巧

2013-11-01 09:34:56

Node.js技术

2015-03-10 10:59:18

Node.js开发指南基础介绍

2023-08-29 09:43:21

Node.js.env

2024-11-18 08:58:26

2021-05-09 23:37:56

IDEAJava 开发者

2023-04-19 08:31:57

Node.jsLTS版本

2011-09-08 13:46:14

node.js

2011-09-02 14:47:48

Node
点赞
收藏

51CTO技术栈公众号