新的连接尝试事件
net.createConnection 流程中新增了三个事件:
connectionAttempt:当尝试建立新连接时触发。在 Happy Eyeballs 的情况下,可能会发生多次。
connectionAttemptFailed(连接尝试失败):连接尝试失败时发出。如果是 Happy Eyeballs,可能会多次触发。
connectionAttemptTimeout:连接尝试超时:连接尝试超时时发出。在 Happy Eyeballs 的情况下,最后一次尝试将不会发出此信息。如果不使用 Happy Eyeballs,则根本不会发出此警报。
此外,还修正了以前的一个错误,即在前一次连接失败后,在连接被用户销毁后,可能会开始新的连接尝试。这将导致断言失败。
由 Paolo Insogna 在 #51045 中提供。
权限模型的变更
Node.js 21.6.0 对实验性权限模型进行了多项修复,并新增了两项半重要提交。我们添加了一个新标志 –allow-addons 以在使用权限模型时启用附加组件。
$ node –experimental-permission –allow-addons
巴什
由 Rafael Gonzaga 在 #51183 中提供
通过 –allow-fs-* 标志,现在可以支持相对路径。因此,在此版本中可以使用
$ node –experimental-permission –allow-fs-read=./index.js
短讯
只允许读取应用程序入口点的访问权限。
由 Rafael Gonzaga 和 Carlos Espa 提供 #50758
通过 –build-snapshot-config 标志支持可配置快照
我们添加了一个新标记 –build-snapshot-config,用于通过自定义 JSON 配置文件配置快照。
$ node –build-snapshot-config=/path/to/myconfig.json
快照
使用此标记时,命令行上提供的其他脚本文件将不会被执行,而是被解释为常规的命令行参数。
这些更改由 Joyee Cheung 和 Anna Henningsen 在 #50453 中贡献
其他值得注意的更改
[c31ed51373] – (SEMVER-MINOR) timers: export timers.promises (Marco Ippolito) #51246
提交
[13a1241b83] – assert,crypto:使 KeyObject 和 CryptoKey 可进行等价测试 (Filip Skokan) #50897
[4dcc5114aa] – 基准:移除对未发货工具的依赖 (Adam Majer) #51146
[2eb41f86b3] – 联编:修复 VScode “在容器中重新打开” (Serg Kryvonos) #51271
[e03ac83c19] – 联编:修复 arm64 交叉编译 (Michaël Zasso) #51256
[cd61fce34e] – 联编:在 V8 联编中添加 -flax-vector-conversions (Michaël Zasso) #51257
[e5017a522e] – 加密:更新加密密钥符号属性 (Filip Skokan) #50897
[c0d2e8be11] – Deps:更新 corepack 至 0.24.0 (Node.js GitHub Bot) #51318
[24a9a72492] – deps:更新 acorn 至 8.11.3 (Node.js GitHub Bot) #51317
[e53cbb22c2] – 更新 ngtcp2 和 nghttp3 (James M Snell) #51291
[f00f1204f1] – 版本:更新 brotli 至 1.1.0 (Node.js GitHub Bot) #50804
[a41dca0c51] – 文件:更新 zlib 至 1.3.0.1-motley-40e35a7 (Node.js GitHub Bot) #51274
[efa12a89c6] – 文件:将 simdutf 更新至 4.0.8 (Node.js GitHub Bot) #51000
[25eba3d20b] – 组件:V8: cherry-pick de611e69ad51 (Keyhan Vakil) #51200
[a07d6e23e4] – 版本:将 simdjson 更新至 3.6.3 (Node.js GitHub Bot) #51104
[6d1bfcb2dd] – 部署:将 googletest 更新至 530d5c8 (Node.js GitHub Bot) #51191
[75e5615c43] – 数据库:将 acorn-walk 更新至 8.3.1 (Node.js GitHub Bot) #50457
[3ecc7dcc00] – 文件:将 acorn-walk 更新至 8.3.0 (Node.js GitHub Bot) #50457
[e2f8d741c8] – 文件:将 zlib 更新至 1.3.0.1-motley-dd5fc13 (Node.js GitHub Bot) #51105
[4a5d3bda72] – doc:GN 文件应使用 Node 许可证(Cheng Zhao) #50694
[84127514ba] – doc:改进 localWindowSize 事件描述 (Davy Landman) #51071
[8ee882a49c] – doc:将–jitless标记为实验性的(Antoine du Hamel) #51247
[876743ece1] – doc:运行许可证生成器 (github-actions[bot]) #51199
[ec6fcff009] – doc:修复 pm 中的限制和已知问题 (Rafael Gonzaga) #51184
[c13a5c0373] – doc:在威胁模型中提及 node:wasi (Rafael Gonzaga) #51211
[4b19e62444] – doc:删除模棱两可的 “considered”(Rich Trott) #51207
[5453abd6ad] – doc:在自定义测试运行器示例中设置退出代码(Matteo Collina) #51056
[f9d4e07faf] – doc:从 maintaining-dependencies.md 中移除版本 (Antoine du Hamel) #51195
[df8927a073] – doc:在 pm 中提及本地附加组件受限 (Rafael Gonzaga) #51185
[e636d83914] – 文档:更正 stats.isDirectory 的行为说明 (Nick Reilingh) #50946
[1c71435c2a] – doc:修正 TestsStream 父类 (Jungku Lee) #51181
[2c227b0d64] – doc:修复 simdjson 错误链接 (Marco Ippolito) #51177
[efa13e1943] – (SEMVER-MINOR) doc:为 –build-snapshot-config 添加文档 (Anna Henningsen) #50453
[941aedc6fc] – errors:修复 SystemError 的堆栈跟踪 (uzlopak) #49956
[47548d9e61] – esm:修复无效模块指定符的提示 (Antoine du Hamel) #51223
[091098f40a] -fs:修复 Windows 上长路径的 fs.promises.realpath (翠/绿) #51032
[e5a8fa01aa] -fs:使 fh.read() 中的偏移、位置和长度参数可选(Pulkit Gupta) #51087
[c87e5d51cc] -fs:为 readSync 添加缺失的 jsdoc 参数 (Yagiz Nizipli) #51225
[e24249cf37] -fs:移除 internalModuleReadJSON 绑定 (Yagiz Nizipli) #51224
[7421467812] -fs:提高缓冲区前缀的 mkdtemp 性能 (Yagiz Nizipli) #51078
[5b229d775f] -fs:在 c++ 上同步验证 fd (Yagiz Nizipli) #51027
[c7a135962d] – http:移除误导性警告(Luigi Pinca) #51204
[a325746ff4] – http:不要覆盖用户提供的选项对象(KuthorX) #33633
[89eee7763f] – http2:添加 http/2 设置 (Marten Richter) #49025
[624142947f] – lib:修复使用–jitless的–frozen-intrinsics(Antoine du Hamel) #51248
[8f845eb001] – lib:将函数声明移至循环之外 (Sanjaiyan Parthipan) #51242
[ed7305e49b] – 库:减少 SafePromiseAllSettledReturnVoid 调用的开销 (Antoine du Hamel) #51243
[291265ce27] – 库:公开默认的 prepareStackTrace (Chengzhong Wu) #50827
[8ff6bc45ca] – lib,permission:处理fs.symlink上的缓冲区(Rafael Gonzaga) #51212
[416b4f8063] – (SEMVER-MINOR) lib,src,permission: port path.resolve to C++ (Rafael Gonzaga) #50758
[6648a5c576] – 元:通知 tsc SECURITY.md 中的更改 (Rafael Gonzaga) #51259
[83a99ccedd] – 元:将工件操作更新至 v4 (Michaël Zasso) #51219
[b621ada69a] – 模块:将 CJS 输出缓存移至 internal/modules/cjs/loader (Joyee Cheung) #51157
[e4be5b60f0] – (SEMVER-MINOR) net:添加连接尝试事件 (Paolo Insogna) #51045
[3a492056e2] – node-api:不使用 v8::Private 的类型标签外部值 (Chengzhong Wu) #51149
更多 Node.js — Node v21.6.0 (Current) (nodejs.org)
Windows 32-bit Installer: https://nodejs.org/dist/v21.6.0/node-v21.6.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v21.6.0/node-v21.6.0-x64.msi
Windows ARM 64-bit Installer: https://nodejs.org/dist/v21.6.0/node-v21.6.0-arm64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v21.6.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v21.6.0/win-x64/node.exe
Windows ARM 64-bit Binary: https://nodejs.org/dist/v21.6.0/win-arm64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v21.6.0/node-v21.6.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v21.6.0/node-v21.6.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v21.6.0/node-v21.6.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v21.6.0/node-v21.6.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v21.6.0/node-v21.6.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v21.6.0/node-v21.6.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v21.6.0/node-v21.6.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v21.6.0/node-v21.6.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v21.6.0/node-v21.6.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v21.6.0/node-v21.6.0.tar.gz
Other release files: https://nodejs.org/dist/v21.6.0/
Documentation: https://nodejs.org/docs/v21.6.0/api/