专栏首页前端达人Node.js 16 发布,V8 升级至 9.0!

Node.js 16 发布,V8 升级至 9.0!

我们很高兴地宣布 Node.js 16 正式发布了!升级重点包括 V8 JS 引擎升级至 9.0,预构建的 Apple Silicon 二进制文件,还有一些额外的稳定 API。

你可以在 这里[1] 下载最新版,或者使用 UNIX 上的 Node 版本管理器[2] 运行 nvm install 16 命令进行安装。Node.js 博客中包含的变更日志可以在 这里[3] 找到。

最初,Node.js 16 将会替代 Node.js 15 成为我们的「当前」发布版本。根据 发布时间表[4],Node.js 16 将是未来 6 个月的「当前』版本,然后在 2021 年 10月 升级为长期支持(LTS)。一旦升级为长期支持,将以 “Gallium” 的代号发布。

提醒一下 —— Node.js 12 将保持长期支持直到2022年4月,Node.js 14 将保持长期支持直到 2023 年 4 月。Node.js 10 将在这个月底(2021 年 4 月)结束生命。可以在 Node.js 发布工作组仓库[5]中找到关于我们的发布计划或者时间表的更多细节。

V8 升级至 9.0

和往常一样,V8 JavaScript 引擎的新版本带来了性能调整和改进,并使 Node.js 保持最新的 JavaScript 语言特性。在 Node.js v16.0.0 中,V8 引擎从 Node.js 15 中的 8.6 升级到 9.0。

这个更新带来了 ECMAScript RegExp 匹配索引,它提供了捕获字符串的开始和结束索引。当正则表达式具有 /d 标志时,索引数组可以通过匹配对象的 .indices 属性获得。

> const matchObj = /(Java)(Script)/d.exec('JavaScript');
undefined
> matchObj.indices
[ [ 0, 10 ], [ 0, 4 ], [ 4, 10 ], groups: undefined ]
> matchObj.indices[0]; // Match
[ 0, 10 ]
> matchObj.indices[1]; // First capture group
[ 0, 4 ]
> matchObj.indices[2]; // Second capture group
[ 4, 10 ]
复制代码

V8 中的更多新特性以及更新内容请查看 V8 博客:v8.dev/[6]

稳定的 Timers Promises API

Timers Promises API 提供了另一组返回 Promise 对象的定时器函数,不再需要使用 util.promisify()

import { setTimeout } from 'timers/promises';
async function run() {
  await setTimeout(5000);
  console.log('Hello, World!');
}
run();
复制代码

James Snell 在 Node.js v15.0.0 中添加了该特性(github.com/nodejs/node…[7]

其他特性

我们发布进度的本质意味着新特性大约每两周在「当前」发布版本线中发布一次。由于这个原因,最近的 Node.js 15 版本中已经提供了许多新添加的内容,但是对于运行时来说仍然是相对较新的。

Node.js 15 最近发布的一些特性,也将在 Node.js 16 中可用,包括:

  • 标准 Web Crypto API[8] 的实验实现
  • npm 7(Node.js v16.0.0 中为 npm 7.10.0)
  • Node-API v8
  • 稳定的 Source Map v3
  • Web 平台 atob(buffer.atob(data))和btoa(buffer.btoa(data))实现,以兼容遗留的 Web 平台 api

新的编译器

Node.js 为几种不同的平台提供了预构建的二进制文件。对于每个主要版本,最小的工具链被评估并在适当的地方被提出。

Node.js v16.0.0 将会是第一个支持 Apple Silicon 的预构建二进制文件。虽然我们将为 Intel(darwin-x64)和 ARM (darwin-arm64)架构提供单独的 tarball,但 macOS 安装程序(.pkg)将以 “fat”(多架构) 二进制文件的形式发布。

这些二进制文件的生产版本得以实现,要感谢 MacStadium 为该项目提供了必要的硬件。

在我们基于 linux 的平台上,构建 Node.js 16 的最低 GCC 版本将是 GCC 8.3。关于所支持的工具链和编译器的详细信息在Node.js BUILDING.md[9] 中有文档说明。

描述

一个新的主要版本发布,这也是我们介绍新的运行时废弃的时候。Node.js 项目旨在将任何破坏性改变对生态系统的破坏最小化。该项目使用名为 CITGM[10](金矿中的金丝雀)的工具来测试任何破坏性更改(包括弃用)对大量流行的生态系统模块的影响,以便在完成这些更改之前提供额外的见解。

Node.js 16 中值得注意的弃用包括运行时弃用一些核心模块的 process.binding() 访问,比如 process.binding('http_parser')

参考资料

[1]

这里: https://nodejs.org/en/download/current/

[2]

Node 版本管理器: https://github.com/nvm-sh/nvm

[3]

这里: https://nodejs.org/en/blog/release/v16.0.0

[4]

发布时间表: https://github.com/nodejs/Release#release-schedule

[5]

Node.js 发布工作组仓库: https://github.com/nodejs/release

[6]

v8.dev/: https://v8.dev/

[7]

github.com/nodejs/node…: https://github.com/nodejs/node/pull/33950%EF%BC%89%EF%BC%8C%E5%9C%A8%E6%9C%AC%E6%AC%A1%E6%9B%B4%E6%96%B0%E4%B8%AD%EF%BC%8C%E5%AE%83%E4%BB%AC%E4%BB%8E%E5%AE%9E%E9%AA%8C%E7%8A%B6%E6%80%81%E8%BF%87%E6%B8%A1%E5%88%B0%E7%A8%B3%E5%AE%9A%E7%8A%B6%E6%80%81%E3%80%82

[8]

Web Crypto API: https://www.w3.org/TR/WebCryptoAPI/

[9]

BUILDING.md: https://github.com/nodejs/node/blob/v12.x/BUILDING.md#platform-list

[10]

CITGM: https://github.com/nodejs/citgm

转自:Jacob是我了 https://juejin.cn/post/6957316675918102558

本文分享自微信公众号 - 前端达人(frontend84),作者:Jacob是我了

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Node.js 16 来了,14 将支持到 2023 年

    参见 Node.js 官方网站[1] 的发布记录,Node.js 16 版本已于 2021 年 4 月 20 日发布,重点包括:将 JavaScript v8 ...

    五月君
  • Node 16 新版本发布,一大堆新特性来袭!!!

    Node 16 于四月二十日发布,山月在第一时间下载了 Node16 体验了以下新特性。偶数号的版本为 LTS 版本,这将是既 Node14 之后的下一个长期支...

    公众号@魔术师卡颂
  • 前端技术观察第 32 期

    ConardLi
  • Node.js v15.0.0 is here!

    我们很高兴地宣布,Node.js 15 已于今天发布。Node.js 15 将替代 Node.js 14 成为我们的“当前”发行版,后者将在本月晚些时候升级为 ...

    五月君
  • Electron 9.0.0发布!带来三项重大改进,不再支持Electron 6

    Electron 团队宣布 Electron 9.0.0 正式发布。新版包括了 Chromium 83、V8 8.3 和 Node.js 12.14 几个组件的...

    ConardLi
  • Node.js 6.0 已经支持 93% 的ES6

    Node.js 6.0 发布了,带来了性能的大幅提升、更好的测试、更完善的文档、更好的安全性,并广泛支持了ES6 在 Node.js 5.0 发布了6个月以后,...

    dys
  • Node.js v14 官方发布说明来了

    本文由Michael Dawson 和 Bethany Griggs 撰写,同时 Node.js 社区委员会和 Node.js 技术指导委员会也提供了贡献。

    疯狂的技术宅
  • 你不知道的Node.js性能优化

    仅仅是简单的升级 Node.js 版本就可以轻松地获得性能提升,因为几乎任何新版本的 Node.js 都会比老版本性能更好,为什么?

    Starkwang
  • Node.js内存管理和V8垃圾回收机制

    对于 Node.js 服务端研发的同学来说,关于垃圾回收、内存释放这块不需要向 C/C++ 的同学那样在创建一个对象之后还需要手动创建一个 delete/fre...

    五月君

扫码关注云+社区

领取腾讯云代金券