Node.js 22发布,增强了对ESM模块和Web API的支持
Node.js 团队最近发布了 Node.js 22。核心特性包括增强与 JavaScript 原生模块和 Web API 的兼容性,以及性能方面的改进。
Node.js 21 已经支持关键的 JavaScript 模块 API,其中包括
import.meta
对象。具体来说,Node.js 21 支持import.meta.dirname
和import.meta.filename
。Node.js 22 增加了对 JavaScript 模块(ESM)图同步require
的支持。发布说明中提供了详细信息:如果启用 --experimental-require-module
,require()
加载的 ECMAScript 模块满足如下的需求:
- 通过在闭包 package.json 或“.mjs”扩展文件中使用“type”: “module”字段明确标记为 ES 模块。
- 完全同步(不包含顶层的 await)。
require()
会以 ES 模块的形式加载所请求的模块,并返回模块命名空间对象。在这种情况下,它类似于动态的import()
,但是会同步运行并直接返回命名空间对象。我们计划在未来默认启用require(esm)
,而不必使用标记。技术博主 CoderOasis 提供了一个简单的 代码示例 来说明该特性:
// ES module: math.js
exportfunctionadd(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 翻译,未经许可禁止转载。
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。