Deno 2.9 发布,主打原生桌面应用开发、Node 项目无缝迁移与全面性能提升。
deno desktop(实验性):允许将脚本或 Web 框架项目编译为单文件原生桌面应用,无需 Electron。提供 Deno.BrowserWindow、Deno.Tray、Deno.Dock 等原生 API,支持通过 window.bind() 在 webview 与 Deno 间通信。默认使用系统 webview 引擎(WebView2 / WebKit),可选 --backend cef 嵌入 Chromium 以保证跨平台渲染一致。支持自动检测 Next.js、Astro、Fresh 等框架,通过 --target / --all-targets 跨平台编译为 .dmg、.msi、.deb、.AppImage 等格式。
Node 生态迁移:deno install 直接读取 npm、pnpm、Yarn、Bun 的 lockfile 并精确迁移为 deno.lock;自动转换 pnpm-workspace.yaml 配置;系统无 Node 时自动提供 node 二进制 shim,确保既有构建工具正常执行。
性能:冷启动从 34.2 ms 降至 17.3 ms(约 2 倍提升);Deno.serve 吞吐量提升 1.1–1.3 倍;高负载下内存占用降低 2.2–3.1 倍。crypto.subtle 与 console 等热点路径由 JavaScript 下沉至 Rust。
测试与覆盖率:内置快照测试 t.assertSnapshot();支持基于模块依赖图的变更感知测试(--changed、--related)、测试重试与重复(--retry、--repeats)、覆盖率阈值(--threshold)、分片并行(--shard)及参数化测试 Deno.test.each。
编译与打包:deno compile 新增 --include-as-is 静态资源嵌入、--app-name 持久化存储标识、实验性 --bundle 大幅缩减 npm 依赖体积,以及 --watch 重新编译。deno bundle 支持 --declaration 生成汇总 .d.ts。
格式化与任务:deno fmt 基于新的 lax 引擎重构,覆盖 HTML/XML/SVG、CSS、SQL;新增 sortNamedImports/Exports、JSON 尾随逗号与 .editorconfig 支持。deno task 新增基于输入(files/output/env)的增量缓存、--jobs 并发限制、--if-present、--env-file 与通配符排除语法。
安全与兼容性:默认启用 24 小时 min-release-age 防止立即安装新发布恶意包;新增 no-downgrade npm 信任策略,阻止弱于历史发布强度的包版本。Node.js 兼容目标升至 v26,裸 Node 内置模块(如 fs、path)可无条件解析。Web Crypto 实现 ML-KEM、ML-DSA、SLH-DSA 等后量子算法,以及 ChaCha20-Poly1305、SHA-3 系列、Argon2,并新增 SubtleCrypto.supports() 特性检测。
其他:CSS 文件可通过 with { type: "css" } 以 constructable stylesheet 方式导入(需 --unstable-raw-imports);Deno.serve 自动压缩改为默认关闭;新增 Web Locks API、Happy Eyeballs、deno watch HMR 命令等。