Javascript开发人员偏爱Deno而不是Node的5大原因

57次阅读

共计 2000 个字符,预计需要花费 5 分钟才能阅读完成。

NodeJS 的作者 Ryan Dahl 发布了一个新的运行时,旨在解决 Node 的许多缺点。你最初的反应可能是“哦,太棒了,另一个 Javascript 框架?正是我所需要的 …”。别担心,我也有同样的反应。在了解了优势之后,我也看到了为什么 Deno 正是 2020 年后端 Javascript 开发人员所需要的。让我们来看看 javascript 开发人员使用 Deno vs. Node 获得更流畅,更现代的体验的 5 大原因。

1. 现代 Javascript——ES Modules

如果你是像我这样的 React 开发人员,你会注意到使用 NodeJS 导入软件包的语法是不同的。这是因为 Node 于 2009 年问世,此后对 Javascript 进行了大量更新和改进。

在 React(和 Deno)中,我们使用 import package from 'package' 语法导入包,而在 Node 中,我们使用 const package = require("package") 语法。

ES Modules 导入的优势在于两个原因:

  1. 使用 import,可以有选择地只从包中加载需要的部分,这节省了内存。
  2. 加载与 require 同步,而 import 则异步加载模块,从而提高了性能。

如果你在上图中注意到,我们正在从 URL 导入 moment 包,这将带给我们 Deno 的下一个优势。

2. 去中心化的包

使用 Deno,不再依赖 NPM。是的,不再需要 package.json,每个包都是从 URL 加载的。

在 NodeJS 中,要使用软件包,必须首先从 NPM 安装它:

npm i moment

等待它安装,然后将其包含在你的应用程序中:

const moment = require("moment")

另外,任何时候有人要在本地运行你的 NodeJS 仓库时,都必须从 NPM 安装所有依赖项。

在 Deno 中,该包是从 URL 导入的,因此,如果要使用 moment,只需导入 https://deno.land/x/moment/mo…。

关于 Deno 中软件包的另一个巨大优势是, 安装后每个软件包都缓存在硬盘驱动器上 。这意味着软件包的安装仅发生一次,如果要在任何地方再次导入依赖项,则不必下载它。

3.TypeScript 是原生的,不需要配置

让 TypeScript 与 NodeJS 一起工作是一个多步骤的过程。你必须安装 TypeScript,更新 package.json,tsconfig.json,并确保你的模块支持 @types。

在 Deno 中,你所要做的就是将文件另存为 .ts 而不是 .jsTypeScript 编译器已经安装好了

4. 顶层 await——在异步函数之外使用 await 功能

在 Node 中,只能在异步函数中访问 await 关键字。

使用 Deno,你可以随时随地 await 任何事情,而无需将其包装在异步函数中。

几乎所有 Javascript 应用程序都包含许多异步函数,这次升级使代码更加干净和简单。

5. 访问浏览器 API(Window,Fetch)

要使用 javascript 发出 HTTP 请求,我们可以使用 Fetch API。在 NodeJS 中,我们没有访问 Browser API 的权限,因此我们不能直接调用获取函数。我们必须首先安装该软件包:

npm i node-fetch

然后导入包:

const fetch = require("node-fetch")

只有这样,我们才能进行调用。

Deno 原生有权访问 window 对象,这意味着你可以继续调用 fetch(“https://something.com”)以及 Browser API 中的任何其他对象,而无需安装任何库。

结合顶层的 await 优势,你现在可以看到 Deno 代码比 Node 代码简单得多:

并没有就此结束

Deno 还有许多其他优点,例如默认情况下更安全,可以执行 Wasm 二进制文件,具有许多内置库,并且列表还在继续。

本文提到的所有要点都是相互联系的,共同形成一个更现代的 2020 年后端 javascript 运行时。作为一个 React 开发人员,我与 Deno 共鸣。现在,我可以使用导入语法,在任何需要的地方编写 await,使用 TypeScript 而不进行任何配置,甚至可以调用 fetch 而无需安装软件包。很简单。

Deno 最终会取代 Node 吗?也许。这可能需要几年时间。NodeJS 生态系统非常庞大,Deno 可能需要一些时间才能赶上。但是 Javascript 开发人员最近一直喜欢 Deno 的新项目,因此,如果你打算尽快开始一个新项目,那么绝对值得研究。有关如何开始的更多信息,请访问 deno.land。


来源:https://levelup.gitconnected.com,作者:Dan Halperin,翻译:公众号《前端全栈开发者》

本文首发于公众号 《前端全栈开发者》 ID:by-zhangbing-dev,第一时间阅读最新文章,会优先两天发表新文章。关注后私信回复:大礼包,送某网精品视频课程网盘资料,准能为你节省不少钱!

正文完
 0