英国的网页开发者 David Bushell 最近在一篇博客文章《友尽 Deno,如今 Node 是我最好的朋友》中记录了他在他长期使用 Deno 后重返 Node.js 的经历。Bushell 此前一直是 Deno 的忠实用户,他在为一个客户项目重新审视 Node.js 时,惊讶地发现他在离开生态系统期间该平台发生了巨大的变化。

该图像展示了从 Deno 到 Node.js 的过渡,反映了文章关于从 Deno 迁移到 Node.js 的主题。
根据 Bushell 的描述,Node.js 已经发生了实质性的改进,解决了他之前对该平台的不满。他指出现代 ECMAScript 特性现在得到了完全支持,遗留 API 已经被现代化并取代,无处不在的 require() 语句在当代 Node.js 开发中已不再必要。对于他个人的静态站点生成器迁移,Bushell 报告只需要进行三项有针对性的更改:将 Deno 的文件系统 API 替换为 node:fs,用 Hono 的 Node 适配器(node:http 的包装器)替代 Deno.serve,以及用 node:path 直接导入替换 @std/path。尽管在迁移过程中他一直保持着符合 Deno 惯用风格的编码方式,但在完成向 Node.js v26.10.0 的过渡后,他惊讶地发现构建性能提升了 15%。
Bushell 将他离开 Deno 的原因归因于若干持续的可用性和可靠性问题,这些问题逐渐削弱了他对该平台的信心。他特别提到 ZSH 集成长期出现故障,影响了他的工作流程;JSR 包注册表返回的激进速率限制(429 Too Many Requests)响应干扰了包管理;以及反复出现的导致 Deno 在并发 HTTP 请求负载下失效的 Bug。除了这些技术问题之外,Bushell 更根本地认为 Deno Land Inc. 多年前就停止了有意义的创新,他指出员工裁员以及他所描述的‘转向 AI 幻想和 Temu Cloudflare 的氛围编码’作为该项目方向和愿景下降的证据。尽管承认 Deno 早期作为创新 JavaScript 运行时的吸引力,Bushell 在文章结尾处指出,鉴于 Node.js 在他离开期间在开发者体验、性能和生态系统成熟度方面的显著进步,如今‘没有理由使用 Deno 运行时’。