前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全新 Node.js 22 登场:探索它带来的顶级开发特性!

全新 Node.js 22 登场:探索它带来的顶级开发特性!

作者头像
童欧巴
发布2024-04-30 18:47:27
1630
发布2024-04-30 18:47:27
举报
文章被收录于专栏:前端食堂前端食堂

大家好,我是童欧巴。

Node.js 22 于近日发布,本文将介绍其主要功能更新。

Node.js 22 将于十月进入长期支持(LTS)阶段,但在那之前,它将是接下来六个月的“Current”版本。

关于发布规则请见 https://github.com/nodejs/release

V8 升级至 12.4

包括 WebAssembly 垃圾回收、Array.fromAsync[1]、Set method[2]和Iterator Helpers[3]等新功能。

默认在支持的架构上启用 Maglev[4],从而提高 CLI 程序的性能。

相关 PR 如下:

  • https://github.com/nodejs/node/pull/52465
  • https://github.com/nodejs/node/pull/51360

?对同步 ESM graphs 的 require 支持

需要开启 flag --experimental-require-module 使用,同时被 require() 加载的 ECMAScript 模块需要满足以下要求:

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

require() 将作为 ES 模块加载请求的模块,并返回模块命名空间对象。在这种情况下,它类似于动态 import() ,但是同步运行并直接返回命名空间对象。在未来会默认情况下启用 require(esm) ,而无需 flag。

相关 PR 如下:

  • https://github.com/nodejs/node/pull/51977

?运行 package.json 脚本

用于使用 CLI flag node --run<script-in-package-json>从 package.json 执行脚本,还支持 node --run test,该功能在 package.json 脚本中执行测试命令。

相关 PR 如下:

  • https://github.com/nodejs/node/pull/52190

提高 stream 默认 highWaterMark

将流的默认高水位标记从 16KiB 增加到 64KiB。这将提供全面的性能提升,但会略微增加内存使用量。鼓励在内存敏感环境中的用户明确设置 setDefaultHighWaterMark 。

相关 PR 如下:

  • https://github.com/nodejs/node/pull/52037

node --watch 达到 stable 稳定状态

从这个版本开始,Watch 模式达到稳定状态。在 Watch 模式下,被观察的文件更改会导致 Node.js 进程重新启动。

相关 PR 如下:

  • https://github.com/nodejs/node/pull/52074

WebSocket 客户端

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

相关 PR 如下:

  • https://github.com/nodejs/node/pull/51594

glob 和 globSync

此版本在 node:fs 模块中添加了用于模式匹配的函数 glob 和 globSync 。开发人员现在可以利用这些函数来根据指定的模式匹配文件路径。

相关 PR 如下:

  • https://github.com/nodejs/node/pull/51912

创建 AbortSignal 性能增强

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

相关 PR 如下:

  • https://github.com/nodejs/node/pull/52505

其他值得注意的更改、弃用和移除、Semver-Major、Minor 和 Patch 提交的完整列表都可以在这里找到[5]。

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

“原文链接:https://nodejs.org/en/blog/announcements/v22-release-announce”

限时免费知识星球

参考资料

[1]

Array.fromAsync: https://tc39.es/proposal-array-from-async/

[2]

Set method: https://tc39.es/proposal-set-methods/

[3]

Iterator Helpers: https://tc39.es/proposal-iterator-helpers/

[4]

Maglev: https://v8.dev/blog/maglev

[5]

这里找到: https://github.com/nodejs/node/pull/52505

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-28,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 前端食堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • V8 升级至 12.4
  • ?对同步 ESM graphs 的 require 支持
  • ?运行 package.json 脚本
  • 提高 stream 默认 highWaterMark
  • node --watch 达到 stable 稳定状态
  • WebSocket 客户端
  • glob 和 globSync
  • 创建 AbortSignal 性能增强
  • 限时免费知识星球
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com