Node.js 23 发布了!

devtools/2024/11/19 7:38:51/

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.ppmy.cn/devtools/135152.html

相关文章

c++多态(深度刨析)

C系列-----多态 文章目录 C系列-----多态前言一、多态的概念二、多态的定义及实现2.1、多态构成的条件2.1.1、虚函数2.1.2、虚函数的重写 2.2、C11 override 和 final2.3、重载、覆盖(重写)、隐藏(重定义)的对比2.4、抽象类2.5、 接口继承和实现继承 三、多态的原理3.1、虚函数…

大语言模型(LLM)入门级选手初学教程 四

大模型解码与部署 一、解码策略 背景 解码策略将主要关注如何基于概率分布𝑃 选择合适的下一个词𝑢′ 贪心搜索(Greedy Search):在每个生成步骤中都选择概率最高的词元 优缺点:确定性策略&#xff0c…

window的wsl(Ubuntu)安装kafka步骤

环境:Win11 WSL(Linux子系统Ubuntu) apache-zookeeper-3.9.3-bin kafka_2.12-3.8.1 思路:apache上分别下载zookeeper和kafka,在wsl环境安装。在kafka上创建消息的topic,发送消息,接受消息,验证是否安…

RABBIT_MQ消息队列

RabbitMq学习 工作原理 组成部分说明: Broker:消息队列服务进程,此进程包括两个部分:Exchange和QueueExchange:消息队列交换机,按一定的规则将消息路由转发到某个队列,对消息进行过虑。Queue:消息队列,存储消息的队列,消息到达队列并转发给指定的Producer:消息生产…

【C++】构造与析构函数

目录: 一、 This指针  (一)使用方法: 二、类的默认成员函数 三、构造函数  (一)构造函数的特点 四、析构函数 (一)析构函数的特点 正文 一、 This指针 在c语言中我们调用函…

android 使用MediaPlayer实现音乐播放--基础介绍

Android 多媒体框架支持播放各种常见媒体类型,因此 可轻松地将音频、视频和图片集成到您的应用中。你可以播放音频或 从存储在应用资源(原始资源)的媒体文件(原始资源)中获取独立文件 或从通过网络连接到达的数据流中,所有这些均使用 MediaPlayer API。 java部分代码路径…

工作bug---时间片校验

概括 在日常的业务场景中,新增作为一个普通的操作。当特定的逻辑需要进行校验,例如时有涉及到时间的字段,统一条件下,时间段不能重叠来保证时间的严谨性。那么应该怎么做呢? 解决方案 通过编写sql来进行查询校验&am…

基于正则化算法的SAR图像去噪matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1SAR 图像噪声模型 4.2 正则化算法基本原理 5.完整工程文件 1.课题概述 基于正则化算法的SAR图像去噪matlab仿真,仿真输出SAR图像去噪结果,正则化参数收敛曲线,同时…