Node.js16发布,V8升级至9.0!

 我们很高兴地宣布 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')。 

网站标题:Node.js16发布,V8升级至9.0!
转载注明:http://www.shufengxianlan.com/qtweb/news16/422316.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联