写点什么

Deno 2.5 提供了对权限集和测试 API 钩子的支持

作者:Daniel Curtis

  • 2025-10-28
    北京
  • 本文字数:1098 字

    阅读完需:约 4 分钟

大小:548.90K时长:03:07
Deno 2.5提供了对权限集和测试API钩子的支持

Deno,是由 Ryan Dahl 构建的 JavaScript 运行时,最近发布了2.5版本,带来了包括增加权限集(Permission Sets)、新的测试钩子和对 WebSockets 的改进等特性。作为发布的一部分,还有许多性能方面的改进。

 

Deno 2.5 将运行时环境升级到 V8 14.0 和TypeScript 5.9.2,以便于支持更新的 JavaScript 语言特性和性能改进,以及对 TypeScript 更好的支持。发布还包括对日期和时间管理的Temporal API的更改,目标是在未来版本中不必再使用--unstable-temporal标志。

 

其中一个主要变化是配置文件中对权限集的支持,为开发人员提供了更细粒度和声明式的运行时权限控制。通过在deno.json配置文件中定义权限规范,可以根据运行的命令在运行时应用不同的预定义权限。开发人员可以使用新的 permission-set 标志应用权限集,例如:

deno run --permission-set=process-data main.ts
复制代码

 

此外,Deno 通过添加设置和清理钩子,增强了其测试API,测试作者能够直接在 Deno.test 中实现生命周期控制。该版本提供了四个新的钩子:Deno.test.beforeAllDeno.test.beforeEachDeno.test.afterAllDeno.test.afterEach

 

Reddit 上的一位用户对测试 API 中新提供的钩子表示兴奋,然而 YouTube 上的一条评论认为beforeAll的添加来的太晚了,认为它应该更早地与 node 功能对齐。

 

捆绑包运行时(bundle runtime)API 也已交付,使得在运行时可以对模块进行程序化打包。这个功能增强了在 2.4 版本中交付的 deno bundle 命令。捆绑包 API 目前是实验性的,必须使用-unstable-bundle标记。

 

WebSocket头信息进行了改进,允许在发起新的 WebSocket 连接时使用自定义的头信息,这对于认证或传递自定义元数据和状态可能会有所助益。发布博客文章中有一个说明,这个新功能无法在所有浏览器中运行。

 

Deno 2.5 还包括了性能优化。emit 缓存现在在更新之间会持久化地存在,除非底层的 deno_ast 版本发生变化,这减少了不必要的重新编译。CommonJS 模块包装器的内存使用量也有所降低,这提高了 Node.js 的互操作性,而条件性的 JSX 转译在 JSX 被禁用时会完全跳过处理。核心 API 也进行了类似的改进:structuredClone现在使用了更快的内部实现,而Buffer.subarrayBuffer.prototype.utf8Slice都已针对二进制数据处理进行了优化。Deno 的 Node-API 层进行了性能调整,以最小化加载原生 Node 模块时的开销。

 

Deno 是一个开源、安全的 JavaScript 运行时,目标是提供一流的 TypeScript 支持、集成工具和默认安全性。它在 GitHub 上有超过 100k+星标,有 400k+活跃社区用户和 2M+社区模块。Deno v2.5 带来了许多改进和功能,你可以在 Deno 网站上的发布文章中找到完整的变更列表。

 

查看英文原文: Deno 2.5 Brings Support for Permission Sets and Test API Hooks

2025-10-28 10:265

评论

发布
暂无评论

Redis:我是如何与客户端进行通信的

华为云开发者联盟

redis 通信 协议 指令 客户端

MySQL 如何解决幻读(MVCC原理分析)

Ayue、

MySQL InnoDB 1月月更

TDSQL PostgreSQL执行计划详解

腾讯云数据库

tdsql 国产数据库

RavenDB起步--使用 RavenDB Studio

喵叔

看过来!腾讯文档上架优麒麟软件商店啦

优麒麟

Linux 开源 腾讯 操作系统 麒麟操作系统

TDSQL-C PostgreSQL版的高可用特性

腾讯云数据库

tdsql 国产数据库

TDSQL-A技术架构演进及创新实践

腾讯云数据库

tdsql 国产数据库

☕【Java深层系列】「并发编程系列」让我们一起探索一下CyclicBarrier的技术原理和源码分析

码界西柚

并发编程 AQS CyclicBarrier Java 线程 1月日更

一、数据结构

喵叔

华青融天加入,龙蜥社区再添科技风险监测领域新伙伴

OpenAnolis小助手

Linux 开源 合作伙伴

RavenDB起步--第一个 RavenDB 程序

喵叔

事件驱动架构在 vivo 内容平台的实践

vivo互联网技术

微服务 云原生 事件驱动架构

模块1作业

卡西毛豆静爸

架构实战营

架构训练营 毕业设计

dog_brother

「架构实战营」

智联生活行业加速器热门FAQ:物联网企业该如何与华为云合作?

华为云开发者联盟

物联网 华为云 智联生活 智联生活行业加速器 云市场

第四节:SpringBoot中web模版数据渲染展示

入门小站

springboot

企业可以定级吗?可以自己确定等保等级吗?

行云管家

网络安全 等保 等级保护 等保2.0

分享四款H5怀旧小游戏魔塔+伏魔记+三国霸业+寻仙纪

echeverra

前端 游戏

20000字详解大厂实时数仓建设 | 社区征文

五分钟学大数据

数据仓库 实时数仓 1月月更 新春征文

中科柏诚:积极践行为中小企业服务宗旨,同乡村振兴有效衔接

联营汇聚

在线XML转JSON工具

入门小站

工具

鸿蒙轻内核M核源码分析:LibC实现之Musl LibC

华为云开发者联盟

鸿蒙 内存分配 LibC Musl LibC Musl

基于Flink CDC打通数据实时入湖

五分钟学大数据

flink 1月月更

Python监督学习之分类算法的概述

王小王-123

Python 人工智能 机器学习 分类算法

1月月更|推荐学java——Spring事务

逆锋起笔

spring事务管理 spring ioc java 编程 Spring Java Spring事务

为数据库性能调优插上 AI 的翅膀 | 调优测试框架 Matrix 团队访谈

PingCAP

为什么ConcurrentHashMap是线程安全的?

王磊

ReactNative进阶(三十一): IoC 框架 InversifyJS 解读

No Silver Bullet

​React Native 1月月更 InversifyJS

Netty核心概念之ChannelHandler&Pipeline&ChannelHandlerContext

CRMEB

RavenDB起步--客户端API(一)

喵叔

RavenDB起步--安装以及示例数据库

喵叔

Deno 2.5提供了对权限集和测试API钩子的支持_后端_InfoQ精选文章