值得注意的变化
[5e99598639] – 断言:废除CallTracker(Moshe Atlow)#47740
[2d97c89c6f] – crypto: 更新根证书到NSS 3.89 (Node.js GitHub Bot) #47659
[ce8820e292] – (SEMVER-MINOR) dns: expose getDefaultResultOrder (btea) #46973
[9d30f469aa] – 文档:将KhafraDev添加到合作者(Matthew Aitken) #47510
[439ea47a77] – (SEMVER-MINOR) fs:为readdir和opendir增加递归选项(Ethan Arrowood)#41439
[a54e898dc8] – (SEMVER-MINOR) fs: 增加对模式标志的支持,以指定cp方法的复制行为(Tetsuharu Ohzeki) #47084
[4fa773964b] – (SEMVER-MINOR) http: add highWaterMark option http.createServer (HinataKah0) #47405
[2b411f4b42] – (SEMVER-MINOR) stream: 在compose中保留对象模式(Raz Luvaton) #47413
[5327483f31] – (SEMVER-MINOR) test_runner: 添加testNamePatterns到运行API (Chemi Atlow) #47628
[bdd02a467d] – (SEMVER-MINOR) test_runner: execute before hook on test (Chemi Atlow) #47586
[0e70c187bc] – (SEMVER-MINOR) test_runner: 支持合并覆盖率报告(Colin Ihrig) #47686
[75c1d1b66e] – (SEMVER-MINOR) wasi: 使 returnOnExit 默认为 true (Michael Dawson) #47390
承诺
[33d1bd3e02] – 断言:废除callTracker(Moshe Atlow) #47740
[6d87355e83] – 基准:增加eventtarget创建基准(Rafael Gonzaga) #47774
[40324a1dea] – 基准:区分whatwg和legacy url(Yagiz Nizipli) #47377
[936d7cb069] – 基准:为defaultResolve增加一个基准(Antoine du Hamel) #47543
[202042ee93] – bootstrap:支持快照脚本中的namespaced builtins(Joyee Cheung) #47467
[30af5cee55] – 构建:为路径使用pathlib(Mohammed Keyvanzadeh) #47581
[089c9c51e9] – 构建:重构configure.py(Mohammed Keyvanzadeh) #47667
[5b851c8074] – 构建:添加devcontainer配置(Tierney Cyren)#40825
[35e8b3b467] – 构建:将ossf/scorecard-action从2.1.2提升到2.1.3(dependabot[bot]) #47367
[78c08243df] – 构建:用 ruff 替换 Python linter flake8 (Christian Clauss) #47519
[2d97c89c6f] – 密码:更新根证书到NSS 3.89(Node.js GitHub Bot) #47659
[420feb41cf] – 密码:移除随机字节中的INT_MAX限制(Tobias Nießen)#47559
[6046779dd9] – 仓库:禁用V8并发火花塞编译(Michaël Zasso) #47450
[00d461e93f] – Deps:V8: cherry-pick c5ab3e4f0c5a (Richard Lau) #47736
[d08dd8069f] – 仓库:更新ada至2.3.0(Node.js GitHub Bot) #47737
[996245976b] – 仓库:更新undici至5.22.0(Node.js GitHub Bot) #47679
[f3ee3126df] – 仓库:更新ada至2.2.0(Node.js GitHub Bot)#47678
[1391d3b9ff] – 仓库:添加minimatch作为依赖(Moshe Atlow)#47499
[315454350d] – 仓库:更新ada至2.1.0(Node.js GitHub Bot) #47598
[7f7735cad9] – 仓库:更新ICU至73.1版本(Steven R. Loomis)#47456
[13105c12b7] – 仓库:给V8打补丁到11.3.244.8(Michaël Zasso) #47536
[ede69d272a] – 仓库:更新undici到5.21.2(Node.js GitHub Bot)#47508
[64b5a5f872] – 仓库:更新 simdutf 至 3.2.8 (Node.js GitHub Bot) #47507
[2664536796] – 仓库:V8: cherry-pick 8e10685ff918 (Jiawen Geng) #47440
[ba9ec91f0e] – 仓库:更新undici到5.21.1(Node.js GitHub Bot) #47488
[ce8820e292] – (SEMVER-MINOR) dns: expose getDefaultResultOrder (btea) #46973
[4c26e28c33] – doc:为deps创建维护文件夹(Marco Ippolito) #47589
[aa0ef3eabd] – 文档:修复 –allow-* CLI 标志参考(Tobias Nießen) #47804
[98603b6fd3] – 文档:澄清fs权限只影响fs模块(Tobias Nießen) #47782
[3befe5dac9] – 文档:在windows上添加复制节点可执行文件指南(XLor) #47781
[98450d9892] – 文档:从Triagers中删除MoLow(Moshe Atlow) #47792
[d75036410d] – 文档:修复webstreams.md中的错字(Christian Takle)#47766
[ceba37a74f] – 文档:将BethGriggs转为正式成员(Rich Trott) #47776
[b954ea9781] – 文档:在SEA中标记签署二进制文件为macOS和Windows(梅旭光) #47722
[26bccbcd10] – 文档:将addaleax移至TSC荣誉会员(Anna Henningsen) #47752
[20b0de242f] – 文档:为Node.js核心添加新闻链接(Michael Dawson) #47704
[5709133dc7] – 文档:修复permissions.md中的一个错字(Daeyeon Jeong)#47730
[c5c40a89f2] – 文档:async_hooks异步内容示例添加mjs代码(btea)#47401
[a1403a8df2] – 文档:澄清测试运行器的并发模型(Tobias Nießen) #47642
[c0c23fbe42] – 文档:修复fs.openAsBlob中的一个错字(Daeyeon Jeong) #47693
[4cef98812d] – 文档:修复错别字(Mohammed Keyvanzadeh)#47685
[f30ef242ef] – 文档:修正ASan的大写字母(Mohammed Keyvanzadeh) #47676
[78a3503406] – 文档:修复SECURITY.md中的错字(Mohammed Keyvanzadeh) #47677
[9101630e05] – 文档:更新缓冲区的错误代码(Deokjin Kim)#47617
[183f0c3e79] – 文档:改变Buffer.copyBytesFrom中例子的偏移量(Deokjin Kim)#47606
[d11ff4bc53] – 文档:改进fs权限描述(Tobias Nießen)#47596
[b58920c3a9] – 文档:删除标题中的markdown链接(Tobias Nießen) #47585
[c36634e880] – 文档:修复WASI构造函数的历史排序(Antoine du Hamel)#47611
[d3fadd889d] – 文档:修复释放后的脚本位置(Rafael Gonzaga) #47517
[2a0bbe7883] – 文档:修复webcrypto元数据中的错字(Tobias Nießen)#47595
[b0b16ee9f6] – 文档:添加uvwasi团队的新闻链接(Michael Dawson) #47531
[7ca416af15] – 文档:在ESM示例中添加缺少的setEncoding调用(Anna Henningsen) #47558
[f9abd59b41] – 文档:更新用于Node.js 20版本的darwin-x64工具链(Michaël Zasso) #47546
[0dc508070f] – 文档:修复Hooks注意事项中的分裂不定式(Jacob Smith) #47550
[4046280475] – 文档:修复util.types.isNativeError()中的错字(Julian Dax) #47532
[9d30f469aa] – 文档:将KhafraDev加入合作者(Matthew Aitken) #47510
[537c17ec48] – 文档:创建维护brotli.md(Marco Ippolito)#47380
[09ff9eafd9] – 文档,fs:更新fs.stat()方法的描述(Mert Can Altın) #47654
[185d6090cd] – doc,test: 修复test()的并发选项(Tobias Nießen) #47734
[a793cf401d] – esm:重命名URLCanParse以保持一致(Antoine du Hamel) #47668
[fbb6b72f87] – esm:移除对已废弃钩子的支持(Antoine du Hamel) #47580
[c150976c4f] – esm:在评估时初始化import.meta(Antoine du Hamel) #47551
[55f70f6395] – esm:将process.exit从加载器线程传播到主线程(Antoine du Hamel) #47548
[269482f61f] – esm:避免访问尿液的懒惰获取器(Yagiz Nizipli) #47542
[889add68e5] – esm:避免在验证urls时使用try/catch(Yagiz Nizipli) #47541
[439ea47a77] – (SEMVER-MINOR) fs:为readdir和opendir添加递归选项(Ethan Arrowood)#41439
[a54e898dc8] – (SEMVER-MINOR) fs: 增加对模式标志的支持以指定复制行为(Tetsuharu Ohzeki) #47084
[96f93cc500] – (SEMVER-MINOR) http: remove internal error in assignSocket (Matteo Collina) #47723
[4fa773964b] – (SEMVER-MINOR) http: add highWaterMark opt in http.createServer (HinataKah0) #47405
[94a5abb1e0] – 检查员:为会话添加提示(theanarkh) #47195
[21ff33127a] – lib:提高esm解析性能(Yagiz Nizipli) #46652
[b8bdaf86c4] – lib:不允许以文件支持的blob克隆(James M Snell) #47574
[e8bc03b372] – lib:在EventTarget中使用webidl DOMString转换器(Matthew Aitken) #47514
[91e4a7cdee] – 装载器:在装载器工作者中使用默认装载器作为级联装载器(Joyee Cheung) #47620
[d5089fe00a] – meta:修复dependabot提交信息(Mestery)#47810
[92794400ce] – 元:为启动测试变化ping nodejs/startup(Joyee Cheung) #47771
[8d43689077] – 元数据:为KhafraDev添加邮件地图条目(Rich Trott)#47512
[4d02901935] – node-api:测试传递NULL到napi_define_class(Gabriel Schulhof) #47567
[568256dca0] – node-api:测试传递NULL到数字API(Gabriel Schulhof) #47549
[12f0fa386d] – node-api:移除未使用的mark_arraybuffer_as_untransferable(吴承中) #47557
[e8ea83416a] – quic:增加更多的QUIC实现(James M Snell)#47494
[af227b159d] – readline:修复最后一行无换行符的问题(Ian Harris)#47317
[e948bec969] – src:避免在fs_permission中复制字符串(Yagiz Nizipli) #47746
[dc43ce7706] – src:用ada::idna替换idna函数(Yagiz Nizipli) #47735
[1f9e7ce7e8] – src: 修正quic/sessionticket.cc注释中的错字(Tobias Nießen) #47754
[2acb57b777] – src:将致命错误函数标记为noreturn(吴承中) #47695
[4431df7481] – src: split BlobSerializer/BlobDeserializer (Joyee Cheung) #47458
[bf9a52cb3d] – src:防止发布后改变FunctionTemplateInfo(Shelley Vohr) #46979
[872e6706ca] – src:为url canParse添加v8快速api(Matthew Aitken) #47552
[cfafe431f2] – src: 让绑定数据中的AliasedBuffers变弱(Joyee Cheung) #47354
[cf48db0034] – src: 使用v8::Boolean(b) over b ?True() :False() (Tobias Nießen) #47554
[ba255eda37] – src: 修正process.env accessor错误信息中的错别字(Moritz Raho) #47014
[daf0c78232] – src:用静态 constexpr 替换静态 const_view(Daniel Lemire) #47524
[57e7ed7f47] – src:修复长度超过INT_MAX时的CSPRNG(Tobias Nießen) #47515
[cda36bfd8f] – src:在node_builtins.cc中使用正确的变量(Michaël Zasso) #47343
[adc1601ccd] – src: slim down stream_base-inl.h (lilsweetcaligula) #46972
[f88132f1b8] – stream:防止生成器函数的流水线挂起(Debadree Chatterjee) #47712
[2b411f4b42] – (SEMVER-MINOR) stream: 在compose中保留对象模式(Raz Luvaton) #47413
[159cf02920] – 测试:重构以在定时器中使用getEventListeners(Deokjin Kim) #47759
[97a3d39b8f] – 测试:添加并使用tmpdir.hasEnoughSpace()(Tobias Nießen)#47767
[5bb7b26bb5] – 测试:移除测试运行器测试名称中的空格(Tobias Nießen) #47733
[84fa9fd725] – 测试:重构WPTRunner并启用WPT并行执行(Filip Skokan)#47635
[9d3768eb01] – Revert “test: run WPT files in parallel again” (Filip Skokan) #47627
[826f4041d1] – 测试:在asan上标记test-cluster-primary-error flaky(Yagiz Nizipli)#47422
[e5251e31eb] – test_runner:修复 –require 与 –experimental-loader(Moshe Atlow) #47751
[6ee5e42c73] – (SEMVER-MINOR) test_runner:支持合并覆盖率报告(Colin Ihrig) #47686
[f8581e7629] – test_runner: 移除no-op验证(Colin Ihrig) #47687
[40b38797c5] – test_runner:修复测试运行器的并发性(Moshe Atlow)#47675
[2d7cac0c5b] – test_runner:修复测试计数(Moshe Atlow)#47675
[5a9b71a52e] – test_runner:修复嵌套钩子(Moshe Atlow) #47648
[5327483f31] – (SEMVER-MINOR) test_runner: 添加testNamePatterns到运行api (Chemi Atlow) #47628
[b6fb7914ca] – test_runner:支持未命名函数的覆盖(Colin Ihrig)#47652
[1f120a396f] – test_runner:将覆盖率收集移至root.postRun()(Colin Ihrig)#47651
[bdd02a467d] – (SEMVER-MINOR) test_runner: 在测试前执行挂钩 (Chemi Atlow) #47586
[ec24abaa03] – test_runner:避免在摘要中报告失败测试的父辈(Moshe Atlow) #47579
[4203057740] – test_runner:修复规格跳过检测(Moshe Atlow) #47537
[57c69987ba] – tls:在server.addContext()中接受SecureContext对象(HinataKah0) #47570
[c620eb80a0] – 工具:更新文档到highlight.js@11.8.0(Node.js GitHub Bot)#47786
[326c3f1593] – 工具:在v8.gyp文件中添加缺少的LoongArch64定义(孙海勇)#47641
[8d1588acdc] – 工具:更新lint-md-dependencies到rollup@3.21.1(Node.js GitHub Bot) #47787
[226e5b83ee] – 工具:将update-npm移至dep updaters(Marco Ippolito) #47619
[9d0bef6c0a] – 工具:修复update-v8-patch缓存(Marco Ippolito) #47725
[63e8c95a66] – 工具:自动更新v8补丁(Marco Ippolito) #47594
[d2994e52d3] – 工具:修复更新-cjs-module-lexer中的跳过信息(Tobias Nießen) #47701
[ccf9c37b43] – 工具:更新lint-md-dependencies至@rollup/plugin-commonjs@24.1.0(Node.js GitHub Bot) #47577
[0887fa0464] – 工具:保持最新的PR标题/描述(Tobias Nießen)#47621
[b8927ddf16] – 工具:修复更新根证书(Richard Lau) #47607
[87cae0cb59] – 工具:更新PR标签配置(Mohammed Keyvanzadeh) #47593
[c17f2688b8] – Revert “tools: ensure failed daily wpt run still generates a report” (Filip Skokan) #47627
[fbe7d73234] – 工具:为uvwasi脚本添加执行权限(Mert Can Altın) #47600
[e3f4ff439e] – 工具:为googletest添加更新脚本(Tobias Nießen) #47482
[7c552e650a] – 工具:添加选项来运行具有特定工具ID的工作流程(Michaël Zasso) #47591
[1509312170] – 工具:自动更新zlib(Marco Ippolito) #47417
[6af7f1ee03] – 工具:自动添加url和whatwg-url标签(Yagiz Nizipli) #47545
[ff73c05d54] – 工具:为基准变化添加性能标签(Yagiz Nizipli) #47545
[9e3e0b0a84] – 工具:自动更新uvwasi的依赖性(Ranieri Innocenti Spada) #47509
[233b628f22] – 工具:添加丢失的钉子依赖(Mateo Nunez)#47346
[e4d95859f5] – 工具:自动更新ngtcp2和ngtp3(Marco Ippolito) #47402
[2e8338126b] – 工具:将update-undici.sh移至dep_updaters并创建维护md(Marco Ippolito) #47380
[8712eafc87] – 类型:修复tsconfig的语法错误(Mohammed Keyvanzadeh) #47584
[e4b6b79f18] – url:减少revokeObjectURL cpp调用(Yagiz Nizipli) #47728
[9aae76727f] – url:处理URL.canParse,没有基本参数(Yagiz Nizipli) #47547
[180d365439] – url:验证URL构造器参数长度(Matthew Aitken) #47513
[4839fc4369] – 网址:验证canParse的参数长度(Matthew Aitken) #47513
[606523d37e] – v8:修复ERR_NOT_BUILDING_SNAPSHOT不是一个构造函数(吴承中) #47721
[75c1d1b66e] – (SEMVER-MINOR) wasi: 使returnOnExit默认为真(Michael Dawson) #47390
Windows 32-bit Installer: https://nodejs.org/dist/v20.1.0/node-v20.1.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v20.1.0/node-v20.1.0-x64.msi
Windows ARM 64-bit Installer: https://nodejs.org/dist/v20.1.0/node-v20.1.0-arm64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v20.1.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v20.1.0/win-x64/node.exe
Windows ARM 64-bit Binary: https://nodejs.org/dist/v20.1.0/win-arm64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v20.1.0/node-v20.1.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v20.1.0/node-v20.1.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v20.1.0/node-v20.1.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v20.1.0/node-v20.1.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v20.1.0/node-v20.1.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v20.1.0/node-v20.1.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v20.1.0/node-v20.1.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v20.1.0/node-v20.1.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v20.1.0/node-v20.1.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v20.1.0/node-v20.1.0.tar.gz
Other release files: https://nodejs.org/dist/v20.1.0/
Documentation: https://nodejs.org/docs/v20.1.0/api/