出品|开源中国
文|Travis
Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台 JavaScript 运行环境。Node.js 由Node.js Foundation(已与JS Foundation合并为OpenJS Foundation)持有和维护,亦为 Linux 基金会的项目。Node.js采用Google开发的V8运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模。这些技术通常用于资料密集的即时应用程序。
Node.js 16.0.0 正式发布,本次更新内容如下:
稳定 Timers Promises API:
Timers Promises API 提供了一组替代的定时器函数,这些函数返回 Promise 对象。在Node.js v15.0.0 中添加,在此版本中,它们从实验状态升级为稳定状态。
Toolchain
Node.js v16.0.0 将是发布用于 Apple Silicon 的预构建二进制文件的第一个版本。虽然我们将为 Intel(darwin-x64)和 ARM(darwin-arm64)架构提供单独的压缩文件,但 macOS 安装程序(.pkg)将作为多架构二进制文件提供。
(SEMVER-MAJOR) build:移除对 Python 2 的支持 #36691
(SEMVER-MAJOR) build:将 Makefile 中的 Python 默认为 Python3 #37764
build:更新 Makefile 以支持 fat 二进制 #37861
(SEMVER-MAJOR) build:在 macOS 上启用 ASLR (PIE) #35704
build:对早于 8.3.0 的 gcc 版本发出警告 #37935
(SEMVER-MAJOR) doc:将最低支持的 Xcode 更新到 11 #37872
(SEMVER-MAJOR) doc:将最低支持的 GCC 更新到 8.3 #37871
(SEMVER-MAJOR) doc:将 AIX 的 16.x 版本更新为 GCC 8 #37677
工具:在 Distribution.xml 中设置 arch #38261
V8 9.0:
V8 JavaScript 引擎已更新至 9.0,其中包括性能调整和改进。
这次更新还带来了 ECMAScript RegExp Match Indices,它提供了捕获字符串的开始和结束索引。当正则表达式有 /d 标志时,索引数组可以通过匹配对象上的 .indices 属性获得。
弃用和移除:
(SEMVER-MAJOR) fs:删除允许的 rmdir 递归 #37216
(SEMVER-MAJOR) fs:运行时弃用rmdir递归选项 #37302
(SEMVER-MAJOR) lib:运行时弃用访问 process.binding('http_parser') #37813
(SEMVER-MAJOR) lib:运行时弃用访问 process.binding('url')#37799
(SEMVER-MAJOR) lib:使 process.binding('util')仅返回类型检查器 #37819
(SEMVER-MAJOR) lib:运行时弃用访问 process.binding('crypto') #37790
(SEMVER-MAJOR) 模块:删除 module.createRequireFromPath #37201
(SEMVER-MAJOR) 模块:运行时弃用子路径文件夹映射 #37215
(SEMVER-MAJOR) 模块:运行时弃用“主”索引和扩展查找 #37206
(SEMVER-MAJOR) 模块:运行时弃用无效的 package.json 主要条目 #37204
(SEMVER-MAJOR) 进程:运行时弃用更改 process.config #36902
其他值得注意的变化
(SEMVER-MAJOR) 缓冲区:将 btoa 和 atob 暴露为全局变量 #37786
(SEMVER-MAJOR) deps: 将最低 ICU 版本提升到 68 #37330
deps: 更新 ICU 至 69.1 #38178
deps: 将 llhttp 升级到 6.0.0 #38277
deps: 将 npm 升级到 7.10.0 #38254
(SEMVER-MINOR) http: 添加 http.ClientRequest.getRawHeaderNames() #37660
(SEMVER-MAJOR) lib,src: 更新群集以使用 Parent #36478
(SEMVER-MINOR) 模块:添加对有 require(…) 前缀的 node: 调用的支持 #37246
(SEMVER-MINOR) perf_hooks: 添加直方图选项以定时 #37475
(SEMVER-MINOR) 为有 require(…) 前缀的 node: 调用添加自动完成功能 #37246
(SEMVER-MINOR) util: 添加 getSystemErrorMap() impl #38101