Node.js 22发布,增强了对ESM模块和Web API的支持

作者 | Bruno Couriol 译者 | 张卫滨 策划 | 丁晓昀  

Node.js 团队最近发布了 Node.js 22。核心特性包括增强与 JavaScript 原生模块和 Web API 的兼容性,以及性能方面的改进。

Node.js 21 已经支持关键的 JavaScript 模块 API,其中包括import.meta对象。具体来说,Node.js 21 支持import.meta.dirnameimport.meta.filename。Node.js 22 增加了对 JavaScript 模块(ESM)图同步require的支持。发布说明中提供了详细信息:

如果启用--experimental-require-modulerequire()加载的 ECMAScript 模块满足如下的需求:
  • 通过在闭包 package.json 或“.mjs”扩展文件中使用“type”: “module”字段明确标记为 ES 模块。

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

require()会以 ES 模块的形式加载所请求的模块,并返回模块命名空间对象。在这种情况下,它类似于动态的import(),但是会同步运行并直接返回命名空间对象。我们计划在未来默认启用require(esm),而不必使用标记。技术博主 CoderOasis 提供了一个简单的 代码示例 来说明该特性:
// ES module: math.js  export function add(a, b) {  return a + b;  }  
// CommonJS module: app.js const { add } = require('./math.js'); console.log(add(2, 3)); // Output: 5

Node.js 21 已经部分支持 Navigator API,并试验性地支持浏览器兼容的 Websocket 客户端。在 Node.js 22 中,对 Websocket 的支持仍然是试验性的,但现在它已默认启用,也就是说开发人员不必再使用标志来激活它了。Node.js 22 在性能方面继续取得了一定进展。

Node.js 22 将 V8 JavaScript 引擎更新到了 12.4 版本,它采用了名为 Maglev 的优化 JIT 编译器(介于现有的 Sparkplug 和 Turbofan 编译器之间)。12.4 版本的更新包括 WebAssembly 垃圾收集和 Iterator Helpers 等功能。通过将流的最高水位标志(High Water Mark)从 16KiB 提高到 64KiB,Node.js 流的性能也得到了改善。由于这略微增加了内存的使用量,对于内存敏感的环境,可通过 setDefaultHighWaterMark() 调整默认值。通过提高 AbortSignal 实例创建的效率,fetch() API 和测试执行器(runner)的性能得到了提升。

Node.js 是一款开源软件,在 Open JS 基金会) 的 MIT 许可证下可用。鼓励通过 Node.js 贡献指南 和行为准则提供贡献和反馈。

查看英文原文

Node.js 22 Released with Increased Support for ESM Modules and Web APIs (https://www.infoq.com/news/2024/05/node-22-released/)

声明:本文为 InfoQ 翻译,未经许可禁止转载。

今日好文推荐

谷歌裁掉整个 Python 团队!PyTorch 创始人急得直骂人:“WTF!核心语言团队无可替换”

德国再次拥抱Linux:数万系统从windows迁出,能否避开二十年前的“坑”?

系统 bug 致百人入狱,砸了 2.8 亿元仍上云失败!二十年了,这家大企业被日本软件坑惨了

Rust 生态纯属炒作?3 年写了 10 万行代码的开发者吐槽:当初用 Rust 是被忽悠了

相关推荐

  • “我们坚持开源!”阿里云发布“地表最强”中文大模型:半年一迭代、性能翻倍?
  • 大模型永远也不做了的事情是什么?
  • “国外一开源,国内就创新”!面对中美大模型差异,我们该突破还是继续模仿?
  • Java开发杀手级框架!!
  • 10张图,搞定MySQL隔离级别
  • 同事说,这是写ChatGPT Prompt的万能公式
  • 公务员薪资正开始赶超互联网
  • BigDecimal 为什么可以保证精度不丢失?
  • 神仙接私活神器,牛到不行,绝了!
  • 今日arXiv最热NLP大模型论文:NAACL24实锤语言学对大模型“负优化”,抽象语义表示+思维链有损表现
  • 论文精读 | 生成式搜索与推荐综述
  • 依靠优化RMSLE的技巧获取Kaggle第一。
  • [开源更新]企业数字身份管控平台,一个账号打通所有应用的服务
  • [开源]一款安全可靠且功能强大的开源密码管理项目,支持静态部署
  • 我使用缓存,踩过的7个坑
  • 跟着开源的InternVL,学习如何做自己的GPT-4V
  • 人类偏好就是尺!SPPO对齐技术让大语言模型左右互搏、自我博弈
  • OpenAI下周要有大动作,奥特曼在线剧透:不是GPT-5,不是搜索引擎
  • 百万tokens低至1元!大模型越来越卷了
  • 坏了,我的RTX 3090 GPU在对我唱歌!