首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Node.js 13.0 正式发布

近日,Node.js 13.0 在 GitHub 上正式发布,同时 12.x 版本转入了长期支持阶段(LTS)。虽然 13.0 版本还并未进入 LTS,但在构建、控制台、域等诸多方面进行了“重大更改”。本文主要对 Node.js 13.0 的更新内容进行了梳理,希望能给正在了解 Node.js 最新版本的读者带来帮助。

重大更改

断言:

  • 如果传递给 assert.throws() 或 assert.rejects() 的验证函数返回非 true 的值,则将抛出断言错误来高亮显示编程错误,替代原来的错误信息(Ruben Bridgewater)#28263。
  • 如果传递了构造函数来验证 assert.throws() 或 assert.reject() 抛出的错误实例,将抛出断言错误,替代原来的错误信息(Ruben Bridgewater)#28263。

构建:

  • 新的 Node.js 版本默认支持完整 icu。这意味着新版包含了 ICU 支持的所有语言环境,并且与 Intl 相关的 API 会返回与之前不同的值(Richard Lau)#29887。
  • macOS 支持的最低 Xcode 版本已提升到 10。仍然可以使用 Xcode 8 构建 Node.js,但在 v13.x 未来版本中可能就不再支持了(Michael Dawson)#29622。

child_process:

  • ChildProcess._channel(DEP0129)现在是弃用的运行时(cjihrig)#27949。

控制台:

  • 现在输出 console.timeEnd() 和 console.timeLog() 会自动选择合适的时间单位,不再一直使用毫秒了(Xavier Stouder)#29251。

deps:

  • V8 引擎已更新到 7.8 版。新版提升了对象解构的性能、改善了内存使用并缩短了 WebAssembly 启动时间(Myles Borins)#29694。

域:

  • 现在域的错误处理工作时会将活动域设置为域的父级,以防止内部递归(Julien Gilli)#26211。

fs:

  • 移除了未记录的方法 FSWatcher.prototype.start()(Lucas Holmquist)#29905。
  • 现在在 ReadStream 或 WriteStream 上调用 open() 方法会发出一个运行时弃用警告。这些方法应该是内部的,不应由用户代码调用(Robert Nagy)#29061。
  • fs.read/write、fs.readSync/writeSync 和 fd.read/write 现在接受任何安全整数作为其 offset 参数。offset 的值也不是强制的,因此必须将有效的类型传递给函数(Zach Bjornson)#26572。

http:

  • 中止的请求在 aborted 后不再发出 end 或 error 事件(Robert Nagy)#27984,#20077。
  • 套接字错误后将不再发出数据(Robert Nagy)#28711。
  • 旧版 HTTP 解析器(以前在 --http-parser=legacy 标志下面)已移除(Anna Henningsen)#29589。
  • 现在已将 HTTP 请求的 host 选项验证为字符串值(Giorgos Ntemiris)#29568。
  • 现在 request.connection 和 response.connection 属性都是弃用的运行时。应该使用等效的 request.socket 和 response.socket(Robert Nagy)#29015。

http,http2:

  • 默认服务器超时已移除(Ali Ijaz Sheikh)#27558。
  • 425 状态代码名称已符合 RFC8470。名称从“Unordered Collection”改为“Too Early”(Sergei Osipov)#29880。

lib:

  • error.errno 属性现在将始终是数字。要获得字符串值,请改用 error.code(Joyee Cheung)#28140。

模块:

  • module.createRequireFromPath() 已弃用。请改用 module.createRequire()(cjihrig)#27951。

src:

  • 现在,更改 process.env.TZ 的值将清除 tz 缓存。这将影响一些方法使用的默认时区,如 Date.prototype.toString(Ben Noordhuis)#20026。

流:

  • 流的时序和行为在许多方面做出了改进和增强。请查看下面对应的各个提交以获取更多信息。

原文链接:https://github.com/nodejs/node/releases/tag/v13.0.0

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/fJ2Fed2lJ245G5asH78J
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券