摘要
Deno 2.8 于 5 月 22 日正式发布,官方称这是 Deno 有史以来最大的 minor 版本。此次更新不仅引入了多个全新的 CLI 子命令,还在 Node.js 兼容性、调试能力和图像处理等方面带来了显著改进。 三个全新的 CLI 子命令 此次最值得关注的是三个全新的子命令,补齐了 Deno 工具链的最后短板。 deno audit fix 是对原有 deno audit 命令的升级版。之前 deno audit 可以扫描依赖树中的安全漏洞,但修复仍需开发者手动操作。deno audit fix 则更进一步——它能自动将有漏洞的包升级到满足当前版本约束的最新安全版本。例如,当检测到 body-parser 存在高危漏洞时,它会自动将 1.19.0 升级到 1.20.3。这一逻辑同样适用于 --fix 标志。任何需要跨大版本升级的漏洞会被单独列出,由开发者自行决定是否接受破坏性变更。 deno bump-version 用于自动管理项目的版本号。它支持 patch、minor、major 和 prerelease 级别的版本递增,更强大的能力在于 monorepo 工作空间模式:在工作空间根目录运行,它会自动递增所有成员包的版本,并同步更新 jsr: 版本约束和 import map 中的跨包引用。此外,它还支持从 Conventional Commits 记录自动推导版本增量,并提供 --dry-run 预览功能。 deno ci 则专为 CI/CD 环境设计。CI 脚本和 Docker 文件最需要的往往是"严格按照 lockfile 安装,有问题就立即报错",之前这需要记住一串复杂的 install 参数。deno ci 把这个逻辑封装成了一条命令,开箱即用。 Node.js 类型:默认包含 Deno 2.8 在 npm 兼容层面迈出了一大步:现在通过 npm: 前缀导入的包会自动获得 Node.js 类型声明。这意味着 express、qs 等大量依赖 Node 类型定义的 npm 包,在 Deno 中也能拥有完整的 TypeScript 类型检查,而无需开发者手动配置 @types/node。types/node 现在默认使用 Node 24.x 的类型定义,与 process.versions.node 保持一致。