Node.js 已正式发布 18.13.0 “Hydrogen” LTS 版本,此版本带来一些新功能:
重要变化
添加对外部共享 js 内置函数的支持 #44376
默认情况下,构建 Node.js 会将所有依赖项都捆绑到 Node.js 二进制文件本身。但一些 Node.js 发行版更喜欢在外部管理依赖项,因此现有的构建选项允许外部化与本机代码的依赖关系。
此提交添加了额外的选项,可以外部化与 JavaScript 代码(包括 WASM)的依赖关系。此添加不会影响 Node.js 项目提供的二进制文件,只是允许其他发行版在需要时外部化额外的依赖项。
File
类 #45139
File 类是 FileAPI 的一部分,可以在任何 Blob 可以使用的地方使用,例如在 URL.createObjectURL
和 FormData
中。它包含 Blob 所没有的两个属性:lastModified
,上次修改文件的时间,以 ms 为单位;以及name
,文件名。
支持 Node.js 测试运行器上的函数模拟 #45326
node:test
模块支持在测试期间进行模拟(通过顶级 mock
对象)
test('spies on an object method', (t) => { const number = { value: 5, add(a) { return this.value + a; }, }; t.mock.method(number, 'add'); assert.strictEqual(number.add(3), 8); assert.strictEqual(number.add.mock.calls.length, 1); });
其他变化
- build
- 默认情况下禁用 v8 快照压缩 #45716
- crypto
- 更新根证书 #45490
- dep
- 将 ICU 更新到 72.1 #45068
- doc
- 为 headers/trailers 设置器添加仅文档弃用 #45697
- 将 Rafael 添加到 tsc #45691
- 在
url.parse
中弃用无效端口 #45576 - 弃用 url.parse() #44919
- lib
- drop fetch 实验警告 #45287
- net
- (SEMVER-MINOR) 添加 autoSelectFamily 和 autoSelectFamilyAttemptTimeout 选项 (Paolo Insogna) #44731
- src
- (SEMVER-MINOR) 添加 uvwasi 版本 (Jithil P Ponnan) #45639
- (SEMVER-MINOR) 添加初始影子领域支持 (Chengzhong Wu) #42869
- test_runner
- (SEMVER-MINOR) 添加 t.after() 钩子 (Colin Ihrig) #45792
- (SEMVER-MINOR)不要为 runHook() 使用符号(Colin Ihrig)#45792
- tls
- (SEMVER-MINOR)将“ca”属性添加到证书对象(Ben Noordhuis)#44935
- 删除 trustcor 根 ca 证书 (Ben Noordhuis) #45776
- tools
- 更新 certdata.txt #45490
- util
- 为 utf8 编码添加快速路径 #45412
- 提高文本解码器解码性能 #45294
- (SEMVER-MINOR) 添加 MIME 实用程序 #21128
更新公告:https://github.com/nodejs/node/releases/tag/v18.13.0