本文主要通过5个原来来阐述为什么JavaScript开发人员更喜欢Deno, JavaScript 开发人员为什么在使用 Deno 时能比 Node 获得更流畅、更现代化的体验。
来自公众号:前端之巅,作者 :Dan Halperin
如果你也像我一样是一位 react 开发人员,你会注意到使用 NodeJS 导入软件包的语法是不一样的。这是因为 Node 面世于 2009 年,这些年来 Javascript 得到了大量更新和改进。 在 React(和 Deno)中,我们使用 import package from 'package'语法,而在 Node 中我们使用 const package = require("package") 语法。 Deno 的 ES 模块 import 有两个优势:
如上图所示,我们正在从一个 URL 导入 moment 包,这也是 Deno 的另一个优势。
使用 Deno 时,你不用再依赖 npm 了。是的,不再需要 package.json。每个包都是从一个 URL 加载的。
npm i moment
const moment = require("moment")
另外,不管是谁要在本地运行你的 NodeJS 存储库,都必须从 NPM 安装所有依赖项。在 Deno 中,这个包是从一个 URL 导入的。所以要使用 moment 时,只需导入 https://deno.land/x/moment/moment.ts 即可。
Deno 中软件包这块的另一大优势是,每个包安装完成后都缓存在硬盘驱动器上。也就是说软件包的安装过程只运行一次。要在任何地方再次导入依赖项时,并不需要重新下载。
在 NodeJS 中使用 TypeScript 需要很多准备工作。你必须安装 typescript,更新 package.json、tsconfig.json,并确保你的模块支持 @types。 在 Deno 中,你要做的就是将文件另存为.ts 而不是.js,TypeScript 编译器已经准备就绪了。
在 Node 中,我们只能在一个异步函数中访问 await 关键字。 而在 Deno 中,你可以随时随地 await 任何事情,而无需将其包装在一个异步函数中。 几乎所有的 Javascript 应用都包含许多异步函数。这一改进让代码变得更加简洁明了。
要使用 Javascript 发出 HTTP 请求,我们可以使用 Fetch API。
npm i node-fetch
const fetch = require("node-fetch")
这样我们才能调用一个 fetch。Deno 原生支持访问 window 对象,于是你可以调用 fetch("https://something.com") 以及 Browser API 中的其他任意内容,而无需安装任何库。 有了这个顶级 await 的优势,Deno 的代码就会比 Node 简单很多:
2020 年代编写 Javascript 代码的现代化方式
Deno 还有其他许多优点,例如默认情况下更安全、可以执行 Wasm 二进制文件、拥有许多内置库,等等。 本文提到的这些要点都是相互联系的,它们共同打造出了一个更现代化的 JavaScript 后端运行时。作为一名 React 开发人员,我站 Deno 这边。现在我可以使用 import 语法,在需要的任何位置编写 await,无需任何配置直接使用 TypeScript,甚至可以无需安装包就调用 fetch。一切都非常简单。 Deno 最终会取代 Node 吗?也许会吧。这可能需要几年时间。NodeJS 生态系统非常庞大,Deno 可能需要一些时间才能迎头赶上。很多 Javascript 开发人员最近都考虑在新项目中使用 Deno,因此如果你近期想要开始做一个新项目,Deno 绝对值得你研究一下。了解更多信息,请访问: https://deno.land/
Node.js的作者Ryan Dahl,过去一年半的时间都在打造一个新的JavaScript运行环境Deno来解决Node的一些内在问题。不过不要误会,得益于JavaScript庞大的社区生态和使用范围
我发现自己最近的工作效率不是很高,于是快速浏览了一下 GitHub 趋势页面,看看有没有什么比较酷的新项目。其中有个项目排名比较靠前,即 Deno:
Node之父是谁?没错!就是这个叫Ryan Dahl的男人在2009年创造了Node。你看,其实也不是说大神就都没头发,这位大神毛发不是挺旺盛的嘛!
Deno 已经正式发布了!我说这句话时候,是不是很多前端 和 NodeJS 工(码)程(农)师已经按不住自己的40米大刀了。心中的不仅感慨前端是真的会造轮子
如果你一直关注 Web 开发领域,那么最近可能已经听到了很多关于 Deno 的信息——一种新的 JavaScript 运行时,它可能也会被认为是 Node.js 的继承者。但是这意味着什么,我们需要“下一个 Node.js” 吗?
作为Node之父,Ryan Dahl认为Node自从他把项目移交出去后,Node的走向越来越背离了他的初衷,并且存在着很多无法解决的问题,所以他决心重新开发一个新的项目去解决这些问题
Deno 被创建为 Node.js 的改进版本,如果它被社区所接受,那么最终将可能取代 Node.js。但这很难,毕竟 Node.js 已经被我们广泛接受并使用。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!