Node.js 22 发布,原生支持 WebSocket 客户端

昨日,Node.js 官方博客正式宣布 Node.js 22 的发布!新版本亮点包括 require() ES 模块、WebSocket 客户端、V8 JavaScript 引擎的更新等!

Node.js 22 将在 10 月进入长期支持 (LTS),但在此之前,它将是接下来六个月的 Current 发布版。下面让我们一起来探索此最新发布提供的新特性和优势,并评估它们对您应用程序的潜在影响。

该项目在许多领域继续取得进展,许多新特性和修复程序流入现有的 LTS 发布版。变更日志中概述的 Node.js 22 的变更仅代表了自上一主要发布以来特性和工作的一小部分。

要下载 Node.js 22.0.0,请访问 Node.js 官网,您可以在其中找到发布帖子,其中包含了此发布中包含的完整提交列表。

显著变更

V8 更新至 12.4 版本

V8 12.4 版本发布包括了新特性,如 WebAssembly 垃圾回收、Array.fromAsync、Set 方法和 迭代器助手。

Maglev

V8 的 Maglev 编译器现在在支持的架构上默认启用。Maglev 提高了短期 CLI 程序的性能。

支持 require() 同步 ESM 图

此发布在标志 --experimental-require-module 下添加了对同步 ESM 图的 require() 支持。

如果启用了 --experimental-require-module,并且 require() 加载的 ECMAScript 模块满足以下要求:

  • 明确标记为 ES 模块,在最近的 package.json 中有一个 "type": "module" 字段或一个 .mjs 扩展名。
  • 完全同步(不包含顶层 await)。

require() 将加载所请求的模块作为 ES 模块,并返回模块名称空间对象。在这种情况下,它类似于动态的 import(),但是是同步运行并直接返回名称空间对象。
我们打算最终在将来默认启用 require(esm),无需标志。

运行 package.json 脚本

Node.js 22 包括了一个新实验特性,用于使用 cli 标志 node --run <script-in-package-json> 执行 package.json 中的脚本。

它还支持 node --run test,该命令执行 package.json 脚本中的测试命令。

流默认高水位标记

将流的默认高水位标记从 16KiB 增加到 64KiB。这在略微增加内存使用的情况下,全面提高了性能。建议在内存敏感环境中的用户明确设置 setDefaultHighWaterMark

观察模式 (node --watch)

从这个发布开始,观察模式被认为稳定。当处于观察模式时,被观察文件的更改会导致 Node.js 进程重新启动。

WebSocket

之前在标志 --experimental-websocket 后的浏览器兼容 WebSocket 实现将默认启用。
这为 Node.js 提供了一个无需外部依赖的 WebSocket 客户端。

glob 和 globSync

此发布为 node:fs 模块添加了 globglobSync 函数,用于模式匹配。
开发者现在可以利用这些函数根据指定的模式匹配文件路径。

提高 AbortSignal 创建的性能

此发布提高了创建 AbortSignal 实例的效率,从而显著提高了 fetch 和测试运行器的性能。

行动号召

试试新的 Node.js 22 发布版!我们总是乐于听到您的反馈。使用 Node.js 22 测试您的应用程序和模块有助于确保您的项目与最新的 Node.js 更改和特性的未来兼容性。

另外值得注意的是,Node.js 18 将在 2025 年 4 月结束生命周期,所以我们建议您开始计划升级到 Node.js 20 (LTS) 或 Node.js 22 (即将成为 LTS)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/3316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI相关】数学和统计学知识

数学和统计学的知识可以分为两部分&#xff1a; 一部分是线性代数中的基础概念&#xff0c;比如标量、向量和张量。 另一部分是概率统计中常见的分布类型&#xff0c;比如正态分布和伯努利分布。 线性代数 什么是标量&#xff1f; 标量是一个单独的数&#xff0c;可以是整…

PHP安装dbase扩展,2024最新安装日志,注意PHP版本、扩展目录路径、文件权限3个大坑

今天在我的免费云服务器&#xff0c;阿贝云上安装dbase扩展。系统是centos&#xff0c;安装好了宝塔面板。 第一步&#xff0c; yum install php-pear pecl install dbase &#xff08;显示Installing ‘/usr/lib64/php/modules/dbase.so’ install ok: channel://pecl.php.net…

2021年全国大学生电子设计竞赛D题——基于互联网的摄像测量系统(二)

09 电路设计 前面介绍了系统的硬件框图如下&#xff1a; 硬件基本分为三块&#xff0c;两个摄像节点&#xff0c;一个终端节点。 1. 摄像节点硬件 摄像节点由一个DE10-Nano开发板和一个D8M摄像头实现&#xff0c;DE10-Nano开发板的HDMI接口外接HDMI显示器来显示拍摄到的视频。…

Linux:在线扩容

目录 项目场景 所需技术 操作步骤 Ⅰ&#xff1a;查看pv&#xff08;物理卷&#xff09;、vg&#xff08;卷组&#xff09;大小是否还够扩容 Ⅱ&#xff1a;vda磁盘新增分区vda3 Ⅲ&#xff1a;pv&#xff08;逻辑卷&#xff09;扩容 Ⅳ&#xff1a;vg&#xff08;卷组&…

ABC350 FG 题解

ABC350 FG 题解 本人 Unrated 在开始后 1h 参加&#xff0c;20 分钟过 F&#xff0c;1h 过 G。 F Overview 唐&#xff0c;史上最水 F。 Description 有一个串 S S S&#xff0c;包含大小写字母&#xff0c;( 和 )&#xff0c;保证括号匹配。 对于每组匹配括号&#xf…

vue3的getCurrentInstance获取当前组件实例

vue3的setup中没有this时需要使用getCurrentInstance()来获取。 在 Vue 3 中&#xff0c;getCurrentInstance 方法可以在组合式 API&#xff08;Composition API&#xff09;中获取当前组件实例。这个方法返回一个包含了组件实例的对象&#xff0c;你可以用它来访问组件的 pro…

详解MySQL C API 相关接口(大白话就是:MySQL的c语言怎么写)

文章目录 1、C API 官方文档2、初始化 MYSQL3、连接 MySQL设置连接字符集&#xff08;使得客户端编码方式匹配&#xff09; 4、下发 mysql 指令5、获取 mysql 查询结果(保存起来)获取行与列遍历存储结果 6、释放 MYSQL\_RES 对象7、关闭 MySQL 连接8、总结 1、C API 官方文档 …

动态规划---斐波那契数列模型

目录 一、斐波那契数列的基本概念 二、动态规划在斐波那契数列中的应用与优势 三、实际案例&#xff1a;使用动态规划解决斐波那契数列问题 四、动态规划问题的做题步骤 五、例题 1、第N个泰波那契数---点击跳转题目 2、三步问题----点击跳转题目 3、最小花费爬楼梯---…

FANUC机器人socket通讯硬件配置

一、添加机器人选配包 Fanuc机器人要进行socket通讯&#xff0c;需要有机器人通讯的选配包&#xff0c;1A05B-2600-R648 User Socket Msg&#xff0c;1A05B-2600-R632 KAREL&#xff0c;1A05B-2600-R566 KAREL Diagnostic&#xff0c;1A05B-2600-J971 KAREL Use Sprt FCTN。 二…

【漏洞复现】WebLogic XMLDecoder反序列化(CVE-2017-10271)

1、漏洞描述 CVE-2017-10271漏洞产生的原因大致是Weblogic的WLS Security组件对外提供webservice服务&#xff0c;其中使用了XMLDecoder来解析用户传入的XML数据&#xff0c;在解析的过程中出现反序列化漏洞&#xff0c;导致可执行任意命令。攻击者发送精心构造的xml数据甚至能…

SpringMvc中的异常处理器(在SpringBoot中也可使用)

目录 一、单个控制器异常处理 二、全局异常处理器 三、自定义异常处理器 在开发过程中&#xff0c;Dao&#xff0c;service&#xff0c;Controller层代码出现异常都可能抛出异常。如果哪里产生异常就在哪里处理异常&#xff0c;则会降低开发效率。所以一般情况下我们会让异常…

clickhouse数据去重函数介绍(count distinct)

非精确去重函数&#xff1a;uniq、uniqHLL12、uniqCombined 精确去重函数&#xff1a;uniqExact、groupBitmap 测试数据量&#xff1a;2000w 结论&#xff1a; 1.整形值精确去重场景&#xff0c;groupBitmap 比 uniqExact至少快 2x 2.groupBitmap仅支持无符号整形值去重&#x…

文化旅游3D数字孪生可视化管理平台推动文旅产业迈向更加美好的未来

随着数字化、智能化管理成为文旅产业发展的必然趋势&#xff0c;数字孪生公司深圳华锐视点创新性地推出了景区三维可视化数字孪生平台&#xff0c;将线下的实体景区与线上的虚拟世界完美融合&#xff0c;引领智慧文旅新潮流。 我们运用先进的数字孪生、web3D开发和三维可视化等…

【Bug记录】@RequestBody参数属性为空的问题

1、问题发生背景 使用postman调用之前测试成功的接口&#xff0c;再进行项目拆分&#xff0c;重构之后&#xff0c;接口突然不通了&#xff0c;排查了很久&#xff0c;以为是框架调整&#xff0c;导致出了问题。 2、问题发生的原因 经过一系列的排查&#xff0c;排查详细过程就…

linux内核网络源码-用户空间与内核的接口

内核通过各种不同的接口把内部信息输出到用户空间&#xff0c;除了程序员用于请求特定信息的经典系统调用外&#xff0c;还有三个特殊接口&#xff0c;而其中两个是虚拟文件系统&#xff1a; procfs 文件系统 这是一个虚拟文件系统&#xff0c;通过是挂在proc ,允许内核以文件的…

详解Qt中的鼠标事件

在Qt中&#xff0c;处理鼠标事件是构建交互式界面的关键。Qt提供了一系列与鼠标相关的事件处理函数&#xff0c;允许开发者捕获鼠标的各种动作&#xff0c;如按下、释放、移动、双击等。以下是鼠标事件的使用方法、技巧以及注意事项&#xff0c;并附带C代码示例。 基础使用方法…

GDB多线程调试:Redis的IO多线程

Redis采用的网络模型是单线程的Reactor网络模型&#xff0c;异步处理&#xff0c;因为性能很高。 Reactor先从客户端获取请求&#xff0c;然后dispatch给具体的执行的线程。处理的流程即为read->decode->compute->encode->send。 而Redis的IO多线程的处理时&…

【C++】:拷贝构造函数和赋值运算符重载

目录 一&#xff0c;拷贝构造函数1. 什么是拷贝构造函数2. 拷贝构造函数的特性3. 实践总结 二&#xff0c;赋值运算符重载2.1 运算符重载2.2 赋值运算符重载 一&#xff0c;拷贝构造函数 1. 什么是拷贝构造函数 拷贝构造函数是特殊的构造函数。是用一个已经存在的对象&#x…

什么是哈希表

为了解力扣第一题自学哈希表&#xff0c;做总结。 哈希函数的原理&#xff1a; 如果输入一个参数&#xff0c;那么哈希函数就会输出一个数字&#xff0c;并且不同的输入会有不同的输出&#xff0c;相同的输入会有相同的输出。例如&#xff1a; 苹果————89 苹果————…

SAP采购订单-条件类型-配置开发步骤

由于采购业务变更&#xff0c;需要创建新的价格类型&#xff0c;并添加新的计算逻辑计算。首先在例程&#xff08;VOFM&#xff09;中创建计算逻辑&#xff0c;然后在系统配置&#xff08;SPRO&#xff09;中找到配置点&#xff0c;创建新的条件类型‘ZMM00’,创建定价过程‘ZM…