Node.js 8.9 进入LTS,9.x 版本启动

熊伟伦熊伟伦

关注本专栏的开发者们好久不见,笔者最近前段时间忙于论文断更2个月,本专栏现在继续更新,不出意外情况本专栏会定时更新最新的 Node.js 动态。

10月31日,Node.js 8.9.0 进入 LTS ( Long Term Support,长期支持的稳定版)状态,开发中的版本号升为 9.0.0,让我们来看一下主要有哪些更新吧。

首先是 Node 8.x 进入长期支持的稳定版,昵称叫 “Carbon”(中文“碳”,就是化学中 C 的全称),v8.x 这条版本线变为 “Active LTS”,并将支持到2019年4月,再变更为长期维护版知道2019年10月份不再维护。

笔者:维护一个老版本的软件是一件耗时耗力的事,意味着 bug 修复和 API 变更需要再老版本里同样进行更新,尤其是涉及安全性的 bug。相比其他软件,Node 一个大版本的支持时间较短,新项目建议从 6.x LTS 上到 8.x LTS 版本。

我们再来看看丢弃历史(虽然没多长的历史)包袱的 Node 9.0.0 的内容:

  • AsyncHook
    • 最开始设计的不好的 deprecated API 被移除
  • Error
    • 错误提示加强,现在所有的 core library 的 Error 都会有一个 code 来表示,相比于原来只有 stacktrace,更便于识别错误和寻找解决方案
  • Child Process
    • 在处理 nextTick 时会 emit error
  • Domains
    • deprecated API .dispose() 被移除
  • fs
    • fs.readStream 和 fs.writeStream 现在使用了 destroy()
  • HTTP/1
    • 现在 parse 失败会抛出 400
    • Socket 超时现在可以被设置了
    • 解决了一个请求会导致抛出2次 error 的 bug
    • HTTP 客户端现在可以在 net.Socket 上使用通用的 Duplex streams
  • Intl
    • Deprecated API Intl.v8BreakIterator 现在被移除了
  • OS
    • os.EOL 属性现在只能可读
  • Timer
    • setTimeout() 现在在时间设置超过32位无符号整数的最大值时会抛出一个 warning



引用:
[1]: Node v8.9.0 (LTS) | Node.js
[2]: Node v9.0.0 (Current) | Node.js

「真诚赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
文章被以下专栏收录
还没有评论