ITPub博客

首页 > 应用开发 > Node.js > 好程序员前端分享什么是Deno,它与Node.js的区别

好程序员前端分享什么是Deno,它与Node.js的区别

原创 Node.js 作者:好程序员IT 时间:2019-07-29 16:00:59 0 删除 编辑

  好程序员前端分享 什么是 Deno,它与Node.js 的区别 , Node.js的创建者Ryan Dahl花了一年半的时间研究 deno ,这是一个新的 JavaScript运行时,可以解决Node的所有固有问题。

   不要误解我的意思, Node js它 本身就是一个很棒的服务器端 JavaScript运行时,主要是因为它拥有 很 大的生态系统和 JavaScript。然而, Node.js的创建者Ryan Dahl 承认他应该考虑更多的 -安全性,模块和依赖性,仅举几例。

   在他的辩护中,并不是说他可以想象平台在如此短的时间内会增长多少。此外,早在 2009年,JavaScript仍然是这种奇怪的小语言,每个人都取笑,而且它的许多功能还没有。

   那么什么是 Deno,主要特性有什么呢?

1.  Deno 是一个基于 V8构建的安全的TypeScript的Google运行时引擎。

   它建立了:

l  Rust(Deno的核心是用Rust编写的,node用C++编写的)

l  Tokio(以Rust编写的事件循环)

l  TypeScript(Deno支持开箱即用的JavaScript和typeScript)

l  V8(谷歌在Chrome和node中使用的JavaScript进行时)

   2.   它支持 T y pe2.8开箱即用,没有package. j son,没有npm   不追求兼容 Node,通过 URL 方式引入依赖而非通过本地模块,并且在第一次运行的时候进行加载和缓存,并仅在代码使用运行,依赖才会更新。

n  可以控制文件系统和网络访问权限以运行沙盒代码,默认访问只读文件系统可访问,无网络权限。 V8 和 Golang 之间的访问只能通过 protobuf 中定义的序列化消息完成;

n  最终创建单一可执行文件;

n  支持 top-level 的 await ;

n  最终的 目标是兼容浏览器;

n  可以作为库引入,用于建立自己的 JavaScript runtime 。

   这几个特性,有 很多 个都是针对目前 Node Js   的痛点而来的,包括无 package.json 、依赖的引入和更新方式,针对的就是被广泛吐槽的过大的。

   同时,不 再 追求兼容 node ,可以视为 ry 想彻底抛弃 node 包袱,打造一个更好的 JS 运行时。

它的安全性也是很放心的,它最重要的功能之一就是安全性很高,与 NodeJs 相反, Deno 默认执行沙箱中代码,这就意味运行是无权访问。

我们来看看它的工作原理:

   (async () => {

    const encoder = new TextEncoder();

    const data = encoder.encode('Hello world');

    await Deno.writeFile('HelloWorld.txt', data);

    await Deno.writeFile(' HelloWorld2.txt', data);

   })();

   该脚本创建了两个文本文件,其中包含一条消息。代码正在沙箱中执行,因此它无法访问文件系统。 HelloWorld.txt HelloWorld2.txt Hello world

   另请注意,我们正在使用 Deno 命名空间而不是 fs 模块,就像在 Node 中一样。 Deno 命名空间提供了许多基本的辅助函数。通过使用命名空间,我们正在失去浏览器兼容性 。

   当然我们用到 Deno 的时候,会想到浏览器的兼容性, Deno 旨在浏览器兼容。从技术上讲,在使用 ES 模块时,我们不必使用任何构建工具(如 webpack )来使我们的应用程序啊可以在浏览器中使用。

   但是像 Babel 这样的工具会将代码转换成 ES5 版本的 JavaScript ,因此 即使在不支持该语言所用最新功能的旧版浏览器中,代码也可以运行。但这也是最终文件中包含大量不必要的代码并使输出文件膨胀为代价的。

   由我们决定我们的主要目标是什么,并相应地做出选择。

TypeScript 支持开箱即用

   Deno 使得无需任何配置文件即可轻松使用 TypeScript 。仍然可以用纯 JavaScript 编写程序并使用 Deno 执行它们而不会有任何麻烦。

   Deno 是 TypeScript 和 JavaScript 的新运行时,是一个有趣的项目,现在已经稳定增长了很长一段时间。但是在它被认为是生产就绪之前还有很长的路要走。

借助它的分散式方法,它需要从集中式软件包注册表(即 npm )中释放 JavaScript 生态系统。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913892/viewspace-2652079/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
欢迎关注公众号:好程序员特训营 web前端教程分享 723729549 大数据教程分享 703503210

注册时间:2019-03-20

  • 博文量
    539
  • 访问量
    410848