首页 > 编程语言 >Node.js 21 版本已发布!

Node.js 21 版本已发布!

时间:2023-10-18 13:00:59浏览次数:38  
标签:Node 21 -- js 模块 experimental

本文翻译自 Node.js 21 is now available!,来源: The Node.js Project,略有删改。

我们很高兴地宣布Node.js 21的发布!亮点包括V8 JavaScript引擎更新到11.8, 稳定fetchWebStreams,一个新的实验性标志来切换模块默认值(--experimental-default-type),一个内置的WebSocket客户端,我们的测试运行器的更多更新,等等!

Node.js 21将取代Node.js 20作为我们的“当前”发布线,当Node.js 20在本月晚些时候进入长期支持(LTS)时。 根据发布时间表,Node.js 21将在未来6个月内发布,直到2024年4月。

该项目继续在许多领域取得进展,许多新功能和修复流入现有的LTS版本。 因此,Node.js 21的更新日志中列出的更改仅代表了一小部分功能, 自上一次重大发布以来。

要下载Node.js 21.0.0,请访问:https://nodejs.org/en/download/current/。您可以在https://nodejs.org/en/blog/release/v21.0.0上找到发布信息, 它包含了这个版本中包含的提交的完整列表。

显著变化

Stable fetch/WebStreams

最近对Node.js的更新,版本21,包括对fetch模块和WebStreams的重要更改。 这两个模块在最近的更新后都被标记为稳定。

这将影响WebStreamsFormDataHeadersRequestResponsefetch

内置WebSocket客户端

一个实验性的与浏览器兼容的WebSocket实现。可以通过标志--experimental-websocket启用该功能。但是正如任何实验性功能一样,它可能会有所变动。

V8 11.8

像往常一样,Node.js中包含了新版本的V8引擎(更新到11.8版本,这是Chromium 118的一部分),带来了更好的性能和新的语言功能,包括:

  • Array grouping
  • ArrayBuffer.prototype.transfer
  • WebAssembly extended-const expressions

在Node.js测试运行器中支持globs

在最新的Node.js更新中,测试运行器引入了对glob表达式的支持, 指定--test参数。这意味着现在可以使用强大的glob模式来更有效和灵活地运行测试。例如可以使用以下命令跨多个目录对扩展名为.test.js的所有文件执行测试 类似于node --test **/*.test.js的命令。

ESM: --experimental-default-type flag to flip module defaults

新的标志--experimental-default-type可以用来切换Node.js使用的默认模块系统。 已经明确定义为ES模块或CommonJS的输入,例如由package.json "type"字段或.mjs/.cjs文件扩展名或--input-type标志不受影响。目前隐含的CommonJS将被解释为--experimental-default-type=module下的ES模块。

此外如果传递了--experimental-wasm-modules并且文件以WebAssembly前导\0asm开始,则无扩展文件将被解释为WebAssembly

自定义模块 hook globalPreload 删除; 使用 register 和 initialize 代替

模块自定义 hook globalPreload已被删除。使用register将数据从应用程序线程发送到定制hook,以及initialize hook来建立线程之间的通信信道。

在fs.writeFile函数中添加flush选项

写入文件时,数据可能不会立即刷新到永久存储。 这允许后续的读操作看到陈旧的数据。 此PR为'flush'系列函数添加了一个fs.writeFile选项,该选项强制将数据在成功写入操作结束时刷新。

性能

性能是运行时的重要属性,我们的@nodejs/performance团队在过去的一年里,我们一直在努力改进URLfetchstreamsnode:fsHTTP

Streams

在这个版本中,streams维护者Robert Nagy通过删除冗余检查来进一步优化streams,利用位图,并以更有效的方式调度回调。

HTTP

以前当写入分块响应时,Node.js会为每个对.write(...)的调用创建一个单独的块,不管他们的回答是否有问题这在客户端和服务器端都导致了不必要的开销。

此更改通过在取消响应时为所有对write(...)的调用创建单个块来修复此问题。

集成 navigator Object

在 Node.js 21 中,我们引入了全局 navigator 对象,提升了 Web 互操作性。现在开发者可以通过 navigator.hardwareConcurrency 来访问硬件信息。

行动起来吧!

试试新的Node.js 21版本吧!使用Node.js 21测试您的应用程序和模块有助于确保您的项目未来与最新的Node.js更改和功能的兼容性。

另外值得注意的是,Node.js 16(LTS)已经结束生命周期,因此我们强烈建议您开始计划升级到Node.js 18(LTS)或Node.js 20(LTS)。


看完本文如果觉得有用,记得点个赞支持,收藏起来说不定哪天就用上啦~

专注前端开发,分享前端相关技术干货,公众号:南城大前端(ID: nanchengfe)

标签:Node,21,--,js,模块,experimental
From: https://blog.51cto.com/react/7916687

相关文章

  • 用jstack导出线程信息,用jmap导出线程信息和堆数据信息
    jmap导出的*.hprof文件需要用jvisualvm.exe工具来查看(当然也有第三方的其他工具),jdk8之后的是不会自带了需要手动安装;jmap导出的文件里是包含了线程信息,但是没有jstack导出的多,比如jstack里还有具体等待哪个锁的信息,这个锁的对象类型,还能看到是哪个线程获得了这个锁locked;jmap使......
  • react 公司项目学习 【react+webpack+nw.js + mobx+react-intl 实现的多页面多语言win
    这几天突然要来个react项目;听说还比较复杂;项目组内就两个人会react还在忙,整组主要是用vue;这不,这种‘狗都不干’的事,被安排到我身上了,那就学吧;一、研究代码结构不得不说,这目录结构搞得有点复杂,算是我接触中除了乾坤和electron之外,相当复杂的了,慢慢阅读吧;看懂了,原来是react+web......
  • pino 一个很不错的node log 框架
    pino是一个很不错的nodejs日志框架,fastify就集成了此框架,而且提供了不少框架的扩展,可以方便集成(express,koa,nest,hapi。。。)参考使用app.jsconstpino=require('pino')constlogger=pino({timestamp:pino.stdTimeFunctions.isoTime,})logger.in......
  • 【根号分治】P9212 「蓬莱人形」 题解
    P9212看到除法相关容易想到根号分治。先对\(x,y\)进行讨论,不妨令\(0\lex,y<m\)。\(x<y\)时,当满足\(a_i+y<m\)或\(a_i+x\gem\)时,即当\(a_i<m-y\)或\(a_i\gem-x\)满足\((a_i+x)\bmodm<(a_i+y)\bmodm\),即\(a_i\bmodm\in[0,m-y-1]\bigcup[m-x,m......
  • Node.js框架:通过nvm实现多个node版本共存使用
    一、环境部署1、nvm下载下载地址:https://github.com/coreybutler/nvm-windows/releases2、nvm安装打开安装程序后按流程走就行,中间的安装地址可以自定义调整。注:在选择node.js的路径时,默认路径为C盘里的安装路径,如果本地在该路径下已经安装过......
  • 【专题】2021婚房置业报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33848随着10月的到来,我们已经踏入了年末冲刺阶段,是否准备好应对家庭的盘问了?工作稳定、挣多少钱、买房与否,最后总是绕不开催婚话题。阅读原文,获取专题报告合集全文,解锁文末47份婚恋相关行业研究报告,加入我们的同城群,和志同道合的小伙伴们一起寻找爱......
  • 【专题】2021当代青年婚恋状态研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33848随着10月的到来,我们已经踏入了年末冲刺阶段,是否准备好应对家庭的盘问了?工作稳定、挣多少钱、买房与否,最后总是绕不开催婚话题。阅读原文,获取专题报告合集全文,解锁文末47份婚恋相关行业研究报告,加入我们的同城群,和志同道合的小伙伴们一起寻找爱......
  • 【专题】2021年中国当代不婚主义白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33848随着10月的到来,我们已经踏入了年末冲刺阶段,是否准备好应对家庭的盘问了?工作稳定、挣多少钱、买房与否,最后总是绕不开催婚话题。阅读原文,获取专题报告合集全文,解锁文末47份婚恋相关行业研究报告,加入我们的同城群,和志同道合的小伙伴们一起寻找爱......
  • asisctf 2023 pwn nightjs 复现记录
    关于赛题asisctf2023nightjs附件一道js引擎题目,基于serenityOS上做的改编。(感觉serenity作者很强迫症善良得写了很多注释,连一行赋值语句都有注释,读起来超级愉悦)。偷看了别人的wp来复现。给了patch文件之后,查看修改处的函数被什么函数引用,漏洞点就很明了了。攻击流......
  • nvm动态切换node版本
    在安装node环境时,我们一般通过在官网直接下载稳定版即可。但是这样有个弊端,我们电脑只能安装一个版本的node,当需要多个版本在不同项目中使用时就不好操作,而nvm完美的解决了这个问题。具体步骤如下:下载nvm安装包,并安装通过命令nvmls查看当前版本通过nvminstallversion安装指......