Node.js 20 正式发布,引入权限控制


Node.js 20 已正式发布,将于 10 月成为 LTS 版本。

值得关注的变化

  • 引入权限控制模型 (Permission Model)
  • Synchronous import.meta.resolve
  • Test Runner 到达稳定状态
  • 将 V8 JavaScript 引擎升级到 11.3
  • 支持构建单一可执行应用程序
  • Ada 升级到 2.0
  • 正式支持 ARM64 Windows
  • 要求必须指定 WASI 版本

  • 引入权限控制模型 (Permission Model)

这项特性目前处于实验性阶段。Node.js 20 的权限控制功能让开发者在程序执行期间限制对特定资源的访问,例如文件系统操作、子进程生成和 worker 线程创建。

通过使用此功能,开发者可以防止他们的应用程序访问或修改敏感数据,或者运行可能有害的代码。

详情查看文档:https://nodejs.org/api/permissions.html#process-based-permissions

  • 自定义的 ESM loader hooks 运行在专用线程上

通过加载程序 ( --experimental-loader=foo.mjs ) 提供的 ESM hooks 现在在与主线程隔离的专用线程中运行。这为加载程序提供了一个单独的范围,并确保加载程序和应用程序代码之间没有交叉污染。

  • Test Runner 到达稳定状态

此次对 Node.js 20 的更新包括对 test_runner 模块的重要更改。更新之后,该模块已被标记为稳定状态。此前 test_runner 模块是实验性状态,这次更改标志着它是一个可以用于生产环境的稳定模块。

详情查看发布公告。


相關推薦

2023-11-24

Node.js v20.10.0 已正式发布,代号 'Iron'。根据发布时间表,由于上月 Node.js 21 已正式发布,因此 Node.js 20 就变成了长期支持版本 (LTS)。 新版本主要变化 引入新的--experimental-default-typeflag,用于改变 Node.js 的默认 module 通

2023-10-19

),相约开源PHP办公室,我们一起聊 AI!>>> Node.js 21 已正式发布。值得关注的变化包括: 将 V8 JavaScript 引擎升级至 11.8 fetch和WebStreams到达稳定状态 添加用于 flip module 默认值的新实验性 flag (--experimental-default-type) 内

2023-06-22

常用于资料密集的即时应用程序。 Node.js v20.3.1 现已发布,本次更新内容如下: Notable Changes 此版本中修复了以下 CVE: CVE-2023-30581:mainModule.__proto__绕过实验性策略机制(高) CVE-2023-30584:实验权限模型中的路径遍历旁

2023-12-05

Node.js v18.19.0 已发布,代号 'Hydrogen'。Node v18.19.0 是一个长期支持版本 (LTS),这意味着它将获得更长的支持和维护。LTS 版本通常更加稳定和可靠,适合用于生产环境。 主要变化 将 npm 升级到 v10 在 Node.js 20 中经过两个月的试

2022-05-25

TypeScript 4.7 现已正式发布。 新特性概览 Node.js 中的 ECMAScript 模块支持 模块检测控制 括号内元素访问的控制流分析 改进的对象和方法中的函数推理 实例化表达式 infer类型变量的 extends Constraints 类型参数的 Opt

2023-03-24

TypeScript 的运行时,它使用 V8 并以 Rust 构建。 Deno 1.32 正式发布,值得关注的更新包括: 增强 Node.js 的兼容性 Deno 在提高与 Node.js 的兼容性方面继续取得重大进展,提供了更顺畅的整体开发者体验。这个版本的主要改进包括

2023-11-15

AlmaLinux 9.3 已正式发布,代号“Shamrock Pampas Cat”。目前提供的 ISO 镜像文件支持如下 4 种架构: Intel/AMD (x86_64) ARM64 (aarch64) IBM PowerPC (ppc64le) IBM Z (s390x) AlmaLinux 是开放源码的、社区驱动的项目,它从红帽企业版 Linux (RHE

2023-07-08

常用于资料密集的即时应用程序。 Node.js v20.4.0 现已发布,本次更新内容如下: Mock Timers 新功能允许开发人员为时间相关的功能编写更可靠和可预测的测试。它包括MockTimers,能够模拟setTimeout,来自globals、node:timers和node:tim

2023-11-04

Deno 1.38 已正式发布。 公告写道,此版本为deno doc命令引入了重大改进,其中包括使用deno doc --html生成静态站点文档的能力。另外改进了 Node.js 兼容性、支持 HMR(模块热更新)。 主要变化 改进deno doc:新的 deno doc --html&nb

2023-06-13

常用于资料密集的即时应用程序。 Node.js v20.3.0 现已发布,本次更新内容如下: Notable Changes [ bfcb3d1d9a] - deps:升级到 libuv 1.45.0,包括对 Linux 上文件系统操作的显着性能改进 #48078 [ 5094d1b292] - doc:将 R

2023-08-11

Node.js 为多个分支发布了更新,分别是:v16.20.2 (LTS)、v16.20.2 (LTS) 和 v20.5.1 (Current)。 根据发布公告,此次更新主要是修复安全漏洞。 CVE-2023-32002:可以通过 Module._load 绕过策略(高危) CVE-2023-32006:可以通过 module.cons

2023-01-29

TypeScript 的运行时,它使用 V8 并以 Rust 构建。 Deno 1.30 已发布,值得关注的更新包括: 对内置 Node.js 模块的支持 在 Deno 中,npm 包已经可以通过 Deno 的 Node.js 兼容层访问内置的 Node.js 模块,如 fs、path、process 等等。 在这个版

2022-01-18

Faker.js 受到媒体和社区的广泛关注,他们计划后续发布正式公告。

2022-09-25

Node.js 发布了 3 个更新,分别是 14.20.1 (LTS)、16.17.1 (LTS) 和 18.9.1。三个版本的主要更新都是修复安全问题。 14.20.1 (LTS) CVE-2022-32212: 在 macOS 上的 --inspect 中重新绑定 DNS(高危) CVE-2022-32213: 通过 obs-fold 机制实现的绕过(中等