低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

Node.js 13.0 正式发布

2019 年 10 月 25 日

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


2019 年 10 月 25 日 20:121792
用户头像
王文婧 InfoQ编辑

发布了 126 篇内容, 共 61.7 次阅读, 收获喜欢 251 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第 1 期 week5

张建亮

极客大学架构师训练营

架构师训练营第 5 周课后练习

叶纪想

极客大学架构师训练营

IPFS云算力挖矿系统不开发,区块链挖矿系统

135深圳3055源中瑞8032

我在苦苦坚持的时候,WebStorm已经悄悄的“真香”起来

小Q

Java 学习 架构 面试 webstorm

想要进大厂做架构师,需要掌握哪些技术?阿里内部绝密 “Java架构修炼宝典”从基础一直深入到源码!

Java架构之路

Java 程序员 架构 面试 编程语言

第五周 技术选型(1)作业

钟杰

极客大学架构师训练营

工业互联网推动制造业数字化转型

CECBC区块链专委会

区块链 大数据

牛皮了!世界级架构师,图解面向对象编程,小学生都能看得懂

周老师

Java 编程 程序员 架构 面试

架构师训练营第 1 期第 5 周学习总结

好吃不贵

极客大学架构师训练营

架构师训练营 1 期第 5 周:技术选型(一) - 作业

piercebn

极客大学架构师训练营

架构师训练营第五周总结

薛凯

golang实现一致性 hash 算法

Jacky.Chen

交易所开发需要多少钱?开发搭建交易所系统

135深圳3055源中瑞8032

美滋滋!阿里内部最新出台Java开发规范和系统性能优化指南~

Java架构追梦

Java 学习 架构 面试 性能优化

架构师训练营 -week05- 作业

大刘

极客大学架构师训练营

明星里程被盗?看区块链如何加强个人信息安全保护

CECBC区块链专委会

信息安全 数字签名

架构师训练营第 1 期 week5 总结

张建亮

极客大学架构师训练营

代码作业

Geek_4c1353

极客大学架构师训练营

区块链钱包开发公司,区块链钱包系统开发价格

135深圳3055源中瑞8032

USDT入金系统开发,区块链支付系统开发技术

135深圳3055源中瑞8032

一、食堂就餐卡系统UML设计

Geek_28b526

玩一场用户故事的Cosplay

Bruce Talk

Agile 用户故事 Product Owner

区块链:现实与未来的二律背反

CECBC区块链专委会

区块链 虚拟世界

太难了,5年Java开发经验,阿里面试了7轮终于拿下P7岗offer!

Java架构之路

Java 程序员 架构 面试 编程语言

Consistent Hash

韩向民

科大讯飞胡国平:AI和5G互相辅助,认知中台传递基础技术能力

Lucien

学习 AI 语音识别

科大讯飞1024开发者节,有温度,有创新,有看点

Lucien

AI 技术方案 智能医疗 识别

架构师训练营第五周课后练习

薛凯

javaCV学习-1-环境搭建及测试多张图片合成一个mp4的视频

诸葛小猿

Java 图片合成视频 机器视觉

架构师训练营 -week05-总结

大刘

极客大学架构师训练营

Git:使用Git之前的配置

bobo

git

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

Node.js 13.0 正式发布-InfoQ