显著变化
require(ESM) 现在默认启用
在 v20.x 和 v22.x 的命令行标志下提供了对使用 require() 加载原生 ES 模块的支持,并且在 v23.x 上默认可用。在此版本中,它现在不再位于 v22.x 的标志后面。
此功能仍处于试验阶段,我们正在寻找用户反馈,以便在完全稳定之前进行更多最终调整。因此,在 v23.x 上,当 Node.js 实例首次在 require() 中遇到原生 ES 模块时,它将发出实验性警告,除非来自包含 .如果碰巧有此功能导致的任何回归,用户可以将其报告给 Node.js 问题跟踪器。同时,也可以禁用此功能作为解决方法。require()
node_modules
--no-experimental-require-module
启用此功能后,如果用于加载 ES 模块,Node.js将不再引发。但是,如果正在加载的 ES 模块或其依赖项包含 top-level .当 成功加载 ES 模块时,返回的对象将是类似于 返回的 ES 模块命名空间对象,或者是 ES 模块中导出的对象。ERR_REQUIRE_ESM
require()
ERR_REQUIRE_ASYNC_MODULE
await
require()
import()
"module.exports"
用户可以检查当前 Node.js 实例中是否启用了 。对于包,exports 条件可用作检测当前 Node.js 实例中的支持并允许两者和加载同一本机 ES 模块的一种方式。有关此功能的更多详细信息,请参阅文档。process.features.require_module
require(esm)
"module-sync"
require(esm)
require()
import
由 Joyee Cheung 在 #55085 中贡献
在 Buffer
中添加了可调整大小的 ArrayBuffer
支持
当使用 resizable 创建 a 时,长度现在将随着基础大小的更改而正确更改。
居然是汇编?