Node.js 22 来了!

 
 
 
 
 
 

大厂技术  高级前端  Node进阶

 
 
点击上方 程序员成长指北,关注公众号
回复1,加入高级Node交流群

本周 Node.js 22 版本发布了!亮点包括 require() ES 模块、WebSocket 客户端、V8 JavaScript 引擎的更新等等!

Node.js 22 将于十月进入长期支持(LTS)阶段,但在那之前,它将在接下来的六个月内作为“当前”发布版本。我们鼓励您探索此最新版本提供的新功能和优势,并评估它们对您的应用程序的潜在影响。

该项目在许多领域取得了进展,许多新功能和修复已经流入现有的 LTS 版本。因此,Node.js 22 更新日志中概述的更改仅代表自上一个主要版本发布以来的功能和工作的一小部分。本博客文章将针对这些变更添加一些额外的背景信息。

要下载 Node.js 22.0.0,请访问:https://nodejs.org/download/current/。您可以在 https://nodejs.org/blog/release/v22.0.0 找到发布文章,其中包含此版本中包含的所有提交的完整列表。

V8 升级至 12.4

V8 发布的 12.4 版本包括诸如 WebAssembly 垃圾回收、Array.fromAsync、Set 方法和迭代器助手等新功能。

Maglev

V8 的 Maglev 编译器现在默认启用于支持的架构上(https://v8.dev/blog/maglev)。Maglev 提高了短生命周期 CLI 程序的性能。

由 Keyhan Vakil 贡献于 #51360

支持 require() 同步 ESM 图

此版本在 --experimental-require-module 标志下为同步 ESM 图添加了 require() 支持。

“译者注:之前写过一篇介绍,参考以下内容

五月君,公众号:Nodejs技术栈一个提出 5 年的 Node.js 模块问题,终被解决!

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

在最接近的 package.json 或 .mjs 扩展中以 "type": "module" 字段显式标记为 ES 模块。

完全同步(不包含顶层 await)。

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

运行 package.json 脚本

Node.js 22 包括一个新的实验性功能,用于使用 cli 标志 node --run <package.json 中的脚本> 执行 package.json 中的脚本。它还支持 node --run test,这会执行 package.json 脚本中的测试命令。

流默认高水位标记

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

监视模式(node --watch)

从此版本开始,监视模式被视为稳定。在监视模式下,监视文件的更改会导致 Node.js 进程重新启动。

WebSocket

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

glob 和 globSync

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

改进 AbortSignal 创建的性能

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

行动呼吁

尝试新的 Node.js 22 版本!我们始终乐意听取您的反馈。使用 Node.js 22 测试您的应用程序和模块有助于确保您的项目与最新的 Node.js 更改和功能的未来兼容性。

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

展望未来,Next-10 团队正在进行一项调查,以收集来自生态系统的信息。通过参与来塑造 Node.js 的未来。在此提交您的反馈 https://linuxfoundation.surveymonkey.com/r/nodenext10survey24

本文翻译自 Node.js 官方博客 https://nodejs.org/en/blog/announcements/v22-release-announce

- End -

最后

Node 社群

 
 

我组建了一个氛围特别好的 Node.js 社群,里面有很多 Node.js小伙伴,如果你对Node.js学习感兴趣的话(后续有计划也可以),我们可以一起进行Node.js相关的交流、学习、共建。下方加 考拉 好友回复「Node」即可。

0ffb7ad4ba738514a9bd14fb15fc57a1.png

“分享、点赞、在看” 支持一下
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误的意思是在使用 Node.js 时找不到 highlight.js 这个库。这通常是因为你没有正确安装 highlight.js,或者在代码中没有正确引用 highlight.js。 要解决这个问题,你需要确保 highlight.js 已经正确安装,并在你的代码中正确引用了它。例如,如果你使用的是 npm 安装 highlight.js,可以在你的代码中使用以下语句引用它: ``` var hljs = require('highlight.js'); ``` 如果你使用的是其他方式安装 highlight.js,请确保你在代码中正确引用了 highlight.js。 ### 回答2: 当在使用Node.js时出现"higlight.js not detected!"的错误,可能有以下几种原因: 1. 未正确安装highlight.js模块:在使用Node.js时,如果要使用highlight.js模块,首先需要通过npm(Node.js的包管理器)来安装该模块。请确认在您的项目目录中是否正确安装了highlight.js模块。可以使用如下命令来安装:`npm install highlight.js` 2. 模块导入错误:如果已经正确安装了highlight.js模块,但仍然出现"higlight.js not detected!"的错误,可能是因为在您的代码中导入该模块的语句错误。请确认您正确地引入了highlight.js模块,例如:`const hljs = require('highlight.js')`。 3. 版本兼容性问题:当使用旧版本的Node.js或highlight.js时,可能会导致不兼容的问题。请确保您使用的是最新版本的highlight.js模块,并且与您的Node.js版本兼容。 4. 文件路径错误:如果在正确安装和导入highlight.js模块后仍然报错,可能是由于文件路径错误导致模块无法被找到。请确保在您的代码中正确指定highlight.js模块的路径,或者尝试使用绝对路径来引入模块。 综上所述,当在使用Node.js时出现"higlight.js not detected!"的错误,您可以通过检查highlight.js模块是否正确安装、模块导入是否正确、版本兼容性以及文件路径是否正确等几个方面来解决该问题。 ### 回答3: 当使用Node.js时,出现"highlight.js not detected!"错误通常是因为没有正确加载或安装highlight.js库。 要解决这个问题,可以按照以下步骤进行操作: 1. 首先,确保在你的项目中正确安装了highlight.js库。可以使用npm命令安装高亮.js库:npm install highlight.js 2. 确认你的代码中正确引入了highlight.js库。在你的代码中,你需要使用require语句来引入highlight.js库,类似于这样:const hljs = require('highlight.js'); 3. 确认highlight.js库的路径是否正确。在引入highlight.js库时,确保路径设置正确,指向highlight.js库的位置。 4. 检查你的代码中是否有其他错误。有时,highlight.js not detected错误可能是由于你的代码中的其他错误引起的。要解决这个问题,仔细检查你的代码,并确保没有其他语法或逻辑错误。 如果按照以上步骤操作后仍然出现"highlight.js not detected!"错误,可能要考虑检查highlight.js库的版本是否与你的代码兼容,并尝试更新或降级highlight.js库的版本。 总之,要解决"highlight.js not detected!"错误,你需要确保正确安装和引入highlight.js库,并检查代码中的其他错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值