文章摘要
Deno 2.8发布,这是迄今最大的次要版本更新。新增deno audit fix子命令,可自动升级存在漏洞的npm包至修复版本,同时满足版本约束要求。用户可通过运行deno upgrade命令进行更新,未安装用户可使用提供的安装脚本。该版本进一步提升了安全审计功能。
文章总结
以下是Deno 2.8版本更新的主要内容整理:
核心更新
版本升级
- 通过终端命令
deno upgrade升级至2.8版本,或使用安装脚本初次安装。
- 通过终端命令
新子命令
deno audit fix:自动修复依赖树中的漏洞,支持--fix标志。deno bump-version:更新deno.json或package.json中的版本号,支持语义化版本控制。deno ci:专为CI环境设计的安装命令,严格匹配锁文件。deno pack:将项目打包为npm可发布的tarball,包含类型声明和依赖转换。deno transpile:将TypeScript转换为纯JavaScript,保留源码映射。deno why:追踪依赖安装原因,支持npm和JSR包。
默认npm前缀
- CLI命令(如
deno add)现在默认将无前缀名称视为npm包,简化操作。
- CLI命令(如
Node.js兼容性
- 测试通过率提升:从2.7的42%跃升至2.8的76.4%,覆盖更多
node:模块。 - 性能优化:延迟加载未使用的内置模块,减少启动开销。
性能改进
- 冷启动安装速度:提升3.66倍(从3319ms降至906ms)。
- HTTP吞吐量:
node:http吞吐量提升2.21倍,延迟降低40%。 - 加密与文件操作:
node:crypto的scryptSync快2.12倍,node:fs的cpSync快1.49倍。 - 其他优化:包括
TextEncoder/TextDecoder快速路径、FormData线性时间操作等。
新特性
import defer:延迟模块评估至首次使用导出时,减少启动时间。- TypeScript 6.0.3:内置编译器升级,支持新语法和破坏性变更。
- 默认包含
lib.node:类型检查自动包含Node.js全局类型,无需手动配置。 - 调试增强:Chrome DevTools支持检查网络请求,新增CPU性能分析工具(支持火焰图和Markdown报告)。
包与工作区管理
catalog:协议:集中管理多包依赖版本。- 跨平台安装:通过
--os和--arch标志支持不同平台二进制文件。 - 生产模式标志:
--prod跳过开发依赖,减小部署体积。 .npmrc支持:新增min-release-age等配置,提升私有仓库兼容性。
其他改进
deno compile:自动检测框架(如Next.js、Astro)并构建,支持进度显示。- OpenTelemetry:新增控制台和gRPC导出器,权限审计日志集成。
- 测试与覆盖率:默认禁用资源清理检查,新增超时设置和函数覆盖率统计。
- Web API:实现
OffscreenCanvas和几何接口,增强structuredClone和postMessage的传输能力。 - 任务运行器:并行任务输出添加前缀,支持
set -e和:命令。 - 模块加载钩子:通过
module.registerHooks自定义模块解析和转换。
杂项
setTimeout返回Timeout对象:与Node.js行为一致,优化性能并简化实现。- V8引擎升级至14.9:提升底层JavaScript执行效率。
致谢
感谢社区贡献者的代码提交、问题反馈和讨论支持。
此版本包含大量性能优化、兼容性改进和开发者工具增强,进一步巩固Deno作为现代JavaScript/TypeScript运行时的地位。完整更新列表可查看GitHub发布页。
评论总结
以下是评论内容的总结:
- 关于Deno 2.8版本发布状态
- 有用户指出官方博客未发布,建议查看GitHub(评论1) "The release post for v2.8 is not yet published. Check GitHub releases page"
- 另有用户确认GitHub已发布(评论2) "The release is here: https://github.com/denoland/deno/releases/tag/v2.8.0"
- 关于Deno的竞争定位
- 认为Node.js稳定且功能完善(评论4) "Node's the stable solution...soon enough you'll be able to build your app to a single executable"
- 指出Bun速度快但混乱(评论4) "Bun's chaotic but...it's fast and it's taking an interesting approach"
- 有用户赞赏Deno的安全特性(评论8) "Deno: has a basic permission model...native TypeScript support"
- 关于npm兼容性
- 支持Deno转向npm生态(评论6) "npm after all is the de-facto ecosystem...makes sense"
- 质疑安装命令设计(评论11)
"I don't know why they copied NPM's backwards
npm install/cithing"
- 使用体验反馈
- 推荐Deno作为运行时(评论7) "I wrap most node-isms and use deno as the runtime...Extra options for security are great"
- 赞赏打包命令改进(评论5) "The new deno pack command is a nice addition"
- 其他观点
- 质疑TypeScript浏览器支持(评论9) "why the hell is TypeScript still not nativly supported"
- 讨论AI对开发工具的影响(评论10) "the pressure would have been mended by AI agents...have replaced documentation"