• 时隔4年 Deno 2.0终于发布了候选版本 快来看都有哪些新变化
  • 发布于 1周前
  • 41 热度
    0 评论
时隔 4 年 Deno 2.0 发布了候选版本[1],但这一次社区上显得有点寂静!Deno 最初是 Node 的原创者 Ryan Dahl 创建的,他在发布 Deno 1.0 时曾提到 Node.js 在 2009 年时不得不做出的一些妥协和错误,并列出了 “十个 Node.js 的设计错误” 相关的文章网上很多。这次从 Deno 2.0 候选版本发布内容来看,有些似乎又在像 Node 靠拢!

window 消失了
2.0 版本中移除了全局的 window 变量,这会带来一些破坏性更改,本身该变量旨在提高与浏览器运行代码的兼容性,如果 2.0 后某些依赖该变量进行判断的库就可能会出现问题。window 移除了,但支持了 Node.js 常用的 process 全局变量,这意味着更多为 Node.js 编写的库能够无缝运行。

提高与 Node.js 兼容性
Deno 的初衷是让其更加简单并遵循标准,例如采用 ECMAScript 模块系统(ESM)取代 Node 使用的 CommonJS。Deno 2.0 对 CommonJS 支持得到了增强,也支持更多的 Node.js API,从而进一步提高了与 Node.js 库的兼容性。

其它的一些更新
1.依赖管理得到了改进
2.并对权限系统进行了更改,将操作系统权限和 Deno 权限区分开来
3.许多 API 已经稳定(例如 WebGPU)
4.TypeScript 5.6 支持
5.Deno 2.0 删除了 bundle 子命令,因为它没有达到开发人员的预期
6.删除了一些 API,请参考迁移指南 `https://docs.deno.com/runtime/reference/migrate_deprecations/`[2]

7.... 更多参考官方发布文档


Deno 的未来?
根据 StackOverflow 2024[3] 年的调查,40.8% 的开发者使用 Node.js,而只有 1.9% 的人使用 Deno。相比之下,Bun 等竞争者凭借更好的 Node 兼容性抢占了部分市场,例如 Bun 从一开始就拥抱了 Node 和 CommonJS 的兼容性。Node.js 现在也开始试验性支持支持 TypeScript,这进一步影响了 Deno 的吸引力。

你觉得未来 Deno 会怎么样呢?

参考资料
[1]Deno 2.0 发布了候选版本: https://deno.com/blog/v2.0-release-candidate
[2]https://docs.deno.com/runtime/reference/migrate_deprecations/: https://docs.deno.com/runtime/reference/migrate_deprecations/
[3]StackOverflow 2024: https://survey.stackoverflow.co/2024/technology/#most-popular-technologies****
用户评论