Node.js v20.10.0 已正式发布,代号 'Iron'。根据发布时间表,由于上月 Node.js 21 已正式发布,因此 Node.js 20 就变成了长期支持版本 (LTS)。
新版本主要变化
- 引入新的
--experimental-default-type
flag,用于改变 Node.js 的默认 module
通过设置--experimental-default-type=module
,可以将原本隐式的 CommonJS 模块解释为 ES 模块。 - 引入新的
--experimental-detect-module
flag,用于检测 JavaScript 中不明确的 ESM 语法
该 flag 用来自动检测 ES 模块的语法。对于“模棱两可”的文件,Node.js 会解析文件以检测是否包含 ES 模块语法,如果检测到,则将其作为 ES 模块运行,否则将其作为 CommonJS 模块运行。 - 为文件系统函数引入新的
flush
选项
在写入文件时,可能会出现数据不立即刷新到永久存储的情况。为了解决这个问题,fs.writeFile 系列函数新增了 flush 选项,可以在成功写入操作结束时强制刷新数据。 - 新增实验性的 WebSocket 客户端
使用--experimental-websocket
flag,可以添加一个全局的 WebSocket 对象,符合 WHATWG 的标准。 - 修复 vm.Script 的 V8 编译缓存支持
详情查看发布公告。
延伸阅读:Node.js 21 正式发布