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

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

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

image.png

你可以在 这里[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 属性获得。 

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

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

稳定的 Timers Promises API

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

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

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')。 

 

责任编辑:庞桂玉 来源: 前端大全
相关推荐

2022-03-26 16:51:27

Node.jstrace架构

2012-05-29 17:52:37

福禄克网络OptiView XG

2015-06-23 15:27:53

HproseNode.js

2022-02-12 20:33:29

Node.jsStreamfetch API

2017-06-02 10:00:26

前端Node.js

2021-12-25 22:29:57

Node.js 微任务处理事件循环

2020-10-12 14:59:31

V8引擎如何执行Jav

2023-09-08 10:21:21

2011-11-08 10:53:02

Node.js

2023-10-10 10:23:50

JavaScriptV8

2022-06-21 08:52:47

Node.js服务端JavaScript

2022-02-25 08:32:07

nodemon搭Node.jsJavascript

2021-10-27 07:15:36

NodeLTS异步

2011-12-05 09:39:57

Node.js

2012-07-12 10:15:15

Node.js

2016-10-18 15:18:48

JEECMS V*javaCMS系统

2021-10-26 06:43:36

NodeJavaScript引擎

2022-06-02 12:02:12

V8C++JavaScript

2013-11-01 09:34:56

Node.js技术

2015-03-10 10:59:18

Node.js开发指南基础介绍
点赞
收藏

51CTO技术栈公众号