发布于 2026-01-06 4 阅读
0

Deno是什么?它会取代Node吗?DEV全球项目展示挑战赛,由Mux赞助:快来展示你的项目吧!

Deno是什么?它会取代Node吗?

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

Deno 1.0 版本于 2020 年 5 月 13 日发布,但这
对你意味着什么?它会取代Node吗?
你之前学习 Node 的所有努力都会白费吗?让我们一探究竟!


Deno 是一个新的 JavaScript 运行时环境。你可以把Deno看作是Node.js的升级版有趣的是,它的创建者正是 Node.js 的创建者——Ryan Dahl。

Ryan 看到了 Node.js 的所有问题以及开发过程中做出的糟糕设计决策,但由于现在数百万软件都依赖于它,修改遗留代码已不可能。因此,他决定以更好的形式重写 Node.js,Deno 由此诞生。

有趣的事实: Deno 实际上是 Node 的字母重组。很酷吧!?

请观看下方视频,Ryan 在视频中分享了他对 node.js 的遗憾以及他为何要构建 Deno。

总结起来——Deno 是一个基于 Rust 构建的新运行时,它与Node非常相似,可以做 Node 做的很多事情,但有很多优势。

Deno 相较于Node的最大优势之一在于它内置了 TypeScript 支持!因此,如果您在编写 JavaScript 时使用 TypeScript,您可以直接在 Deno 中使用它,因为它内置了编译器和所有必要的组件,所以您无需担心任何
TypeScript 配置!

现在,请允许我接下来的两点让你大吃一惊:

  1. Deno 项目不需要 node_modules来存放第三方代码。
  2. Deno 项目不需要 package.json 文件来管理依赖项。


一个很火的梗图,比较了 node_modules 的大小 😂

很棒吧?那么你接下来的问题肯定是:如何在 Deno 中使用第三方库?

下面这行代码展示了如何在 Deno 中导入库的语法。

import { serve } from “ https://deno.land/std@0.50.0/http/server.ts ";

没错!我们将直接从服务器导入库文件(使用 URL),并且在首次编译时,导入的库文件将被缓存到您的计算机中,以便后续编译速度更快。

所有依赖项都保存在计算机上的一个中心位置,因此您不必担心庞大的 node_modules 文件夹。

这样就完全不需要使用像 NPM 这样的包管理器了。



https://deno.land/

你一打开Deno的网站,首先看到的就是他们的标语:

一个安全的 JavaScript 和 TypeScript 运行时环境。

这就引出了 Deno 的下一个重要特性:Deno默认是安全的。所谓默认,是指 Deno 项目默认没有任何权限。
你必须为 Deno 使用的每个资源显式地授予权限。例如,即使只是在本地机器上启动一个服务器,你也必须授予权限!这意味着,除非你明确指示,否则 Deno 无法访问你机器上的任何内容。


那么Deno会取代Node吗?

嗯,我现在必须说,情况并非如此。虽然 Deno 的确很棒,而且还有很多新功能即将推出,但它仍处于非常早期的阶段,最近才发布了 v1 版本。Deno 仍在开发很多功能,例如,浏览器兼容性尚未达到 100%,他们仍在完善浏览器 API,这需要一些时间才能实现。

另外,我之前提到过我们没有在 Deno 中使用NPM,这实际上目前是一个小小的缺点。JavaScript 是基于 NPM 包的,而缺点在于很多 NPM 包目前还无法与 Deno 兼容。

可以肯定的是,随着时间的推移,人们会开始编写与 Deno 兼容的软件包,但截至本文发布时,情况并非如此。


感谢阅读本文!希望您现在对 Deno 有了基本的了解。
您可以关注我的推特账号,以便在我发布新文章时第一时间收到更新通知,或者直接在推特上告诉我您的想法!再见!

文章来源:https://dev.to/bhatvikrant/what-is-deno-is-it-gonna-replace-node-34o6