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

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

6月前

作者 | 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 是被忽悠了

微信扫码关注该文公众号作者

来源:InfoQ

相关新闻

OpenAI将停止中国等不支持的国家和地区的API使用研究显示:年轻信徒对以色列和末世论的支持率下降豪赌!哈佛辍学华人竟然发布了只支持Transformer一种算法的AI芯片,一张顶20张H100 ,比GB200快文心一言用户达3亿!文心大模型4.0 Turbo发布,支持API,真GPT-4 Turbo国产来了!Rust编写的Web开发框架——同时支持Node和Python完全开源的现代化IDE正式发布:支持云端和桌面、兼容VS Code扩展、全球最大开源基金会打造Spring Boot 3.2 和 Spring Framework 6.1添加对 Java 21、虚拟线程和 CRaC 的支持拔管后高流量鼻导管吸氧和持续正压通气对危重患儿脱离呼吸支持的影响:随机临床试验华为和苹果同一天发布新平板,还有一款支持触控笔的笔记本德州州长获14位州长对边境的支持胳膊肘往外拐?AMD的AI GPU助推器增加对英伟达的支持民调:拜登和贺锦丽的支持率与川普持平美国就南中国海发生的事件对菲律宾表示支持重磅|创造历史!特朗普成历史首位被定罪美国前总统 !但选民对他的支持更疯狂了!捐款网站被挤爆形势有变!哈里斯稳了?拿到81%的黑人支持率!敢如此较劲的人很少了!必须支持!学生运动蔓延到南加州,UCLA支持巴勒斯坦的抗议者设立了营地,USC取消主要毕业典礼!KSP2 致力于改善 Kotlin 元编程,并添加对 K2 Kotlin 编译器的支持因为“自FDR之后最支持工会的总统”,美国回来了!Node.js 22:服务器端 JavaScript 的未来四面楚歌!埃及公开宣布:支持南非在国际法院对以色列的诉讼外交部发言人:美方应停止散布中国政府支持对美“网络攻击”的虚假信息最新!美联社调查显示,哈里斯获得了足够多的民主党代表的支持,能够民主党总统候选人!Tech Goes Home获得260,000 美元的资助,用于支持数字包容性编程和新社区奖学金
logo
联系我们隐私协议©2024 bendi.news
Bendi新闻
Bendi.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Bendi.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。