栏目分类
Pandora中文网
你的位置:Horizon Protocol 中文站 > Pandora中文网 > Node.js 22发布,增强了对ESM模块和Web API的支持|编译器|软件安装包|node.js|websocketNode.js 22发布,增强了对ESM模块和Web API的支持|编译器|软件安装包|node.js|websocket
发布日期:2025-01-03 17:55 点击次数:79
作者 | Bruno Couriol译者 | 张卫滨策划 | 丁晓昀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
export function add(a, b) {
return a + b;
}
// CommonJS module: app.js
const { add } = require('./math.js');
console.log(add(2, 3)); // Output: 5Node.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 翻译,未经许可禁止转载。
相关文章
- 2025-01-12FEG 过渡到币安智能链 (BSC)
- 2025-01-07高盛交易台:人行发出强烈汇率定价信号
- 2025-01-06MOLI万站,正式上线
- 2025-01-04Windows 12最新资讯
- 2025-01-04Running Index (跑步指數)