当前位置: 首页 > article >正文

Node.js 23 发布了!

Node.js 23 现已推出,带来了新功能、性能改进和更好的开发者体验。此次版本提升了兼容性和稳定性,提供了更多工具来构建高效的应用程序。

此外,Node.js 22 将在 10 月 29 日当周被提升为长期支持 (LTS) 版本,进入长期维护阶段,以确保稳定和安全的更新。

Node.js 23 的亮点:

  • 支持使用 require() 加载原生 ES 模块——在 v23.0.0 之前,该功能是通过 --experimental-require-module 启用的。

  • 移除对 Windows 32 位系统的支持:Node.js 23 不再支持 32 位 Windows,重点支持现代环境。

  • 稳定了 --run 命令:--run 标志已被稳定化,提升了脚本执行效率。

  • 测试运行器增强:测试运行器现在支持针对覆盖文件的全局模式,改进了测试配置。

关于 Node.js 项目版本号的一些提醒:像今天发布的 Node.js 23 这样奇数版本非常适合在您的特定环境中进行早期功能测试。奇数版本不会被提升为 LTS。偶数版本如当前的 Node.js 22,一旦成为 LTS,将重点关注稳定性和安全性,并支持 30 个月。

默认启用 require(esm)

使用 require() 加载原生 ES 模块的支持已在 v20.x 和 v22.x 中通过命令行标志 --experimental-require-module 提供。在 v23.x 中,此功能现已默认启用。此功能仍为实验性功能,我们正在寻求用户反馈,以便在完全稳定之前进行更多的最终调整。因此,在 v23.x 中,当 Node.js 实例首次在 require() 中遇到原生 ES 模块时,会发出实验性警告。

如果此功能导致任何回归问题,用户可以将其报告到 Node.js 的问题跟踪器。同时,此功能也可以通过 --no-experimental-require-module 作为解决方法禁用。我们预计将在 v23.x 中测试此功能,找出潜在的回归问题并相应地进行调整,然后再将这一取消标志的更改回溯到 v22.x。这可能会在 10 月底 LTS 推广后的某个 semver-minor 版本中发生。

启用此功能后,Node.js 将不再在使用 require() 加载 ES 模块时抛出 ERR_REQUIRE_ESM。但是,如果被加载的 ES 模块或其依赖项包含顶层 await,则可能会抛出 ERR_REQUIRE_ASYNC_MODULE。当 require() 成功加载 ES 模块时,返回的对象将是一个类似于 import() 返回的 ES 模块命名空间对象,并且可以使用 util.isModuleNamespaceObject() 进行检查。

用户可以通过 process.features.require_module 检查当前 Node.js 实例是否启用了 require(esm)。对于包来说,可以使用 "module-sync" 导出条件来检测当前 Node.js 实例是否支持 require(esm),并允许 require() 和 import 都加载同一个原生 ES 模块。有关此功能的更多详细信息,请参阅文档。


http://www.kler.cn/a/399793.html

相关文章:

  • .NET桌面应用架构Demo与实战|WPF+MVVM+EFCore+IOC+DI+Code First+AutoMapper
  • 5. langgraph中的react agent使用 (从零构建一个react agent)
  • 【免越狱】iOS砸壳 可下载AppStore任意版本 旧版本IPA下载
  • 力扣第 55 题 跳跃游戏
  • stm32下的ADC转换(江科协 HAL版)
  • STM32设计井下瓦斯检测联网WIFI加Zigbee多路节点协调器传输
  • 深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
  • 思科考证多少钱?不同级别思科认证考试费用详解!
  • 6.C操作符详解,深入探索操作符与字符串处理
  • 训练误差or测试误差与特征个数之间的关系--基于R语言实现
  • 性能超越Spark 13.3 倍,比某MPP整体快数十秒 | 多项性能指标数倍于主流开源引擎 | 云器科技发布性能测试报告
  • Java项目实战II基于Java+Spring Boot+MySQL的新闻稿件管理系统(源码+数据库+文档)
  • 使用IDE实现java端远程调试功能
  • HarmonyOs鸿蒙开发实战(16)=>沉浸式效果第一种方案一窗口全屏布局方案
  • 【杂谈】无人机测绘技术知识
  • PyTorch 中使用自动求导计算梯度
  • 【UGUI】背包的交互01(道具信息跟随鼠标+道具信息面板显示)
  • event_base
  • 腾讯云-COS
  • Python学习28天
  • 【Linux】指令 + 压缩与解压
  • GraphPad Prism与鹰谷电子实验记录本强强联合,数据兼容互通
  • 解决微信小程序自定义tabbar点击两次才能跳转
  • 华为ID机试 -- 分糖果 E100
  • VSCode解说
  • 28.<Spring博客系统⑤(部署的整个过程(CentOS))>