Hacker News 中文摘要

RSS订阅

Deno 2.8 -- Deno 2.8

文章摘要

Deno 2.8发布,这是迄今最大的次要版本更新。新增deno audit fix子命令,可自动升级存在漏洞的npm包至修复版本,同时满足版本约束要求。用户可通过运行deno upgrade命令进行更新,未安装用户可使用提供的安装脚本。该版本进一步提升了安全审计功能。

文章总结

以下是Deno 2.8版本更新的主要内容整理:

核心更新

  1. 版本升级

    • 通过终端命令deno upgrade升级至2.8版本,或使用安装脚本初次安装。
  2. 新子命令

    • deno audit fix:自动修复依赖树中的漏洞,支持--fix标志。
    • deno bump-version:更新deno.jsonpackage.json中的版本号,支持语义化版本控制。
    • deno ci:专为CI环境设计的安装命令,严格匹配锁文件。
    • deno pack:将项目打包为npm可发布的tarball,包含类型声明和依赖转换。
    • deno transpile:将TypeScript转换为纯JavaScript,保留源码映射。
    • deno why:追踪依赖安装原因,支持npm和JSR包。
  3. 默认npm前缀

    • CLI命令(如deno add)现在默认将无前缀名称视为npm包,简化操作。

Node.js兼容性

  • 测试通过率提升:从2.7的42%跃升至2.8的76.4%,覆盖更多node:模块。
  • 性能优化:延迟加载未使用的内置模块,减少启动开销。

性能改进

  • 冷启动安装速度:提升3.66倍(从3319ms降至906ms)。
  • HTTP吞吐量node:http吞吐量提升2.21倍,延迟降低40%。
  • 加密与文件操作node:cryptoscryptSync快2.12倍,node:fscpSync快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和几何接口,增强structuredClonepostMessage的传输能力。
  • 任务运行器:并行任务输出添加前缀,支持set -e:命令。
  • 模块加载钩子:通过module.registerHooks自定义模块解析和转换。

杂项

  • setTimeout返回Timeout对象:与Node.js行为一致,优化性能并简化实现。
  • V8引擎升级至14.9:提升底层JavaScript执行效率。

致谢

感谢社区贡献者的代码提交、问题反馈和讨论支持。

此版本包含大量性能优化、兼容性改进和开发者工具增强,进一步巩固Deno作为现代JavaScript/TypeScript运行时的地位。完整更新列表可查看GitHub发布页

评论总结

以下是评论内容的总结:

  1. 关于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"
  1. 关于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"
  1. 关于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/ci thing"
  1. 使用体验反馈
  • 推荐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"
  1. 其他观点
  • 质疑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"