《架构师》2018年5月
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

热点|Hot

Node.js 10带着npm 6来了!

编译 覃云

今天,Node.js发布最新版本Node.js 10.0.0,同时,npm 6也随之发布。据了解,今年10月,Node.js 10.x将成为长期支持版本,该版本专注于稳定性、扩展支持以及为各类应用提供一个可靠稳定的平台。

在接下来的六个月内,Node的用户和企业需要密切关注Node的动态,并应主动将项目迁移到最新版本上。

Node.js 10.x将是第一个支持OpenSSL 1.1.0的版本。该版本配备了Google V8 6.6 JavaScript引擎,性能会增强,错误处理和跟踪诊断能力也将会提升。

此版本还将推出Node.js API(N-API),N-API是一个稳定的API模块,它独立于V8,这样就不会阻碍模块在不重新编译的情况下运行新版本的Node.js。

Node.js Foundation执行总监Mark Hinkle表示,“2015年首次采取的Node.js长期支持版本策略促进了Node.js项目的成熟,并吸引了更多的企业使用Node。Node.js是一个非常灵活的平台,可用于构建API、物联网和移动应用程序等。”

关于N-API

N-API提高了Node.js的ABI稳定性,有助于模块的部署和维护。

Node.js 10将ABI的稳定模块API(N-API)作为官方支持的API层。N-API旨在解决当今生态系统中的两个问题,一是降低本地模块的维护成本,二是在升级Node.js版本时,降低模块使用者之间的摩擦。

升级到最新的Node.js版本后,Node.js版本之间的模块损坏将不再成为N-API模块的问题,这对于开发者和消费者来说都是双赢的。为了提高此功能的实用性,N-API也将被移植到Node.js 8.x和6.x中,还包括下一版本。

微软的高级项目经理Arunesh Chandra说,“N-API提高了Node.js所需的ABI稳定性,这是Node.js演进中一个巨大的里程碑和进步的标志。在一个稳定、VM多样化的本地模块生态系统中,未来数年内,开发者的生产能力将会在很大程度上得到提高。”

在VM多样性的生态中,Node.js(及其本地模块)可以在不同版本的设备、工作负载上和不同的JavaScript虚拟机上进行无缝工作。它使开发人员能够扩展Node.js生态系统的范围,以便他们可以在更多的设备上重用代码。

随着Node.js在物联网中的应用变得越来越普遍,VM多样性也会变得越来越有必要。许多VM供应商正逐渐针对不同的硬件配置文件进行优化,此后,Node.js将能够扩展到各种不同的VM平台上,使JavaScript和Node.js用户能够随时随地灵活地使用语言和平台。

现代化的加密

Node.js 10.x是第一代支持OpenSSL 1.1.0的版本,Node.js现在能够充分利用由OpenSSL团队在代码质量、清理和现代化上提供的服务。

Node.js现在可以将其加密支持扩展到对称加密算法ChaCha20和身份认证算法Poly1305上,它们共同构成了现代加密系统,增加了Node.js使用“AEAD ”密码套件的可能性。

伴随着最近TLS 1.3规范的完成,网络安全迈出了一大步,OpenSSL团队正准备发布1.1.1版本,其主要特性是支持TLS 1.3,而支持OpenSSL 1.1.1的Node.js 10将可以轻松实现API和ABI的稳定升级。这样,Node. js 10在今年十月份成为长期支持版本之前,它就已经能够支持基于现有最全面加密库的TLS 1.3。

错误处理能力提升

Node.js 10.x在利用错误代码以缓解持续性的错误检验上取得了很好的进展。过去,更改文本里的错误都需要等到semver主版本更新后,这也意味着只有等到下一个主版本的Node.js才能对错误进行更改,而Node.js主版本每六个月发布一次。使用错误代码将可以在不中断应用程序的情况下更新文本。

性能改进

最新的V8在Promise、异步生成器和阵列性能(array performance)有了很大的改进,Promise和异步函数的改进消除了异步函数和desugarded promise链之间的隔阂,这有利于提高使用Node.js构建的应用程序性能

诊断跟踪和Post mortem

在生产中使用Node.js应用程序时,诊断和调试至关重要。最近的几个版本都在这方面有所改进,现在已经有一个专注于Node.js诊断问题的工作组。

在Node.js 10中,新的跟踪事件由performance API发布,提高了代码的透明性。此外,它还将引入了新的API,允许用户在代码运行时按需启用和禁用跟踪事件,从而提高了运行时诊断Node.js应用程序问题的灵活性。

Node.js 10.x引入npm 6

Node.js 10.0.0附带npm 5.7.x,但是,预计在Node.js 10.x生命周期的早期会更新为npm 6。第6版将侧重于性能、稳定性和安全性,与先前版本的npm相比,性能提高1700%。

以后,如果使用具有已知安全问题的代码,npm Registry的用户会收到警告通知。npm将自动检查针对NSP数据库的安装请求,并在代码包含漏洞时发出警告通知。

有关npm 6的更多信息,请访问:https://go.npm.me/npm6

注意:Node.js 10版本可能还会发生其他变动,最新内容都会发布在Medium的Node.js Foundation博客上,请大家留意。