内容提要
Node.js 默认将所有依赖打包到二进制文件中,但最近的更新允许将包含 JavaScript 代码的依赖外部化,增强了灵活性。此外,File 类新增了 lastModified 和 name 属性,node:test 模块支持测试中的模拟功能。
延伸解读
依赖外部化对发行版的意义
Node.js 默认将所有依赖打包进二进制文件,但本次更新允许将包含 JavaScript 代码(包括 WASM)的依赖也外部化。这一改动不影响官方发布的二进制文件,而是为其他发行版提供了灵活性,使它们能按需将更多依赖移出核心,便于独立更新或替换。
File 类新增属性的用途
File 类属于 FileAPI,可在 Blob 适用的场景中使用,例如 URL.createObjectURL 和 FormData。新增的 lastModified 属性记录文件最后修改时间(毫秒),name 属性保存文件名。这两个属性是 Blob 所没有的,方便在文件上传等场景中直接获取元数据。
node:test 模块的模拟功能
node:test 模块现在支持通过顶层 mock 对象在测试中进行模拟。例如,可以用 t.mock.method 监视对象方法,并断言其调用次数。这为内置测试框架补充了常见的测试替身能力,减少对外部模拟库的依赖。
Q&A
Node.js 18.13.0的新特性是什么?
Node.js 18.13.0允许将包含JavaScript代码的依赖外部化,并新增File类的lastModified和name属性。
如何在Node.js中使用File类?
File类可以用于创建Blob对象的URL和FormData,并提供lastModified和name属性。
node:test模块的功能是什么?
node:test模块支持在测试中使用模拟功能,通过顶层模拟对象进行测试。
Node.js 18.13.0如何处理依赖?
默认情况下,Node.js将所有依赖打包到二进制文件中,但更新后可以选择将JavaScript代码的依赖外部化。
File类的lastModified属性有什么用?
lastModified属性提供了文件的最后修改时间,以毫秒为单位。
Node.js 18.13.0的更新对开发者有什么影响?
更新增强了灵活性,允许开发者根据需要外部化JavaScript依赖,改善了依赖管理。