【前端】Node.js 9.0来了_有哪些不一样的体验?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 Node.js 的包管理器 npm,是全球最大的开源库生态系统。
Node.js Foundation前不久发布了Node.js JavaScript运行时的第9个版本,与此同时Node.js 8也会被长期支持使用。据基金会透露,社区驱动的开源库在企业应用、机器人研发技术、服务器应用以及移动网络等方面都有一定的应用,这也意味着公司将会把长期支持版本8。
抛开8我们下面来看看Node.js 9.0.0 的主要更新哪些内容
本次升级并没有太多令人兴奋的点,官方并不希望大版本的更新导致严重的断层,因此新特性、语法会在次版本更新中逐渐被加入。主要变化如下:
一个主要的依赖迎来了更新,V8 引擎更新到了 6.2,异步 IO 库 libuv 更新到 1.15.0,DNS 库 c-ares 更新到 1.13.0
N-API 和 HTTP2 可以直接用了,不需要再加 flag。新版本引入了 Async Hook,尽管依然属于实验性功能,但此次升级后就已经可以使用了
Node.js 核心库开始逐渐迁移到一个全新的报错系统,为每一种错误类型提供唯一的错误代码,以此在不破坏已有代码的前提下,提高用户代码的健壮性
当接收到的请求无法被正确解析时,HTTP 模块会返回一个 400 错误。此前 Node.js 会直接将 socket 挂起,导致服务器误以为 node 进程挂了
assert 模块可以抛出任意类型的错误,而不再仅限于断言错误
Node.js 使用 32 位带符号整数来表示计时器延迟,当延迟溢出时,新版本会增加 1 毫秒延迟,以往版本对此没有处理
API 文档和测试套件的更新,JS 和 C++ 的测试覆盖率均达到 90% 以上
Node.js 9.0.0 发布之后
按照官方的发布计划,9.0 的发布,意味着 8.x 进入 LTS 阶段,7.x 彻底退出舞台,6.x 的 LTS 还有半年结束。也就是说,差不多是时候考虑往生产环境部署 Node.js 8.x 了。