环境具体描述
在很长一段时间内,JavaScript的工作环境也只能是电脑浏览器,或是准确来讲是电脑浏览器里的js模块。直至node的诞生,让JavaScript的运转远离了电脑浏览器,从而可以在服务端运作。但随着js的高速发展,node也出现了不少难题,因此替代物deno出现。
node现况
什么是deno
deno 这名字就是来自 Node 的英文字母重新排列(Node = no de),表明"拆卸 Node.js"(de = destroy, no = Node.js)。Deno 的特征是一只恐龙。霸王龙(dinosaur)英文缩写 dino。
Deno都是基于V8模块和Rust语言所建立的JavaScript、TypeScript实行自然环境。
Deno与Node.js的比较:
相似之处
- 皆运作于V8上。
- 有相同的事件循环。
- 给予CLI让用户可实行开发语言。
- 庞大应用工具。
不同点
- 默认设置模块系统是采用ES Module,而非CommonJS。
- 应用URL载入当地端或远程控制的dependencies。
- 应用内置包管理器来爬取网络资源,因而不用NPM。
- 应用具备缓存机制的快照更新TypeScript编译程序,因而Typescript也可以开箱即用。
- 适配具有显著Web API浏览器。
- 容许操纵文件目录与网站访问,以实行沙盒游戏里的编码。
- 再次运用Promise、ES6、Typescript设计制作API。
- 降到最低关键API大小,并提供很多的标准库,因而无需再应用外部dependencies。
- 应用消息传递安全通道来启用权利系统软件API。
Node | Deno | |
---|---|---|
API 引入方法 | 控制模块导进 | 全局对象 |
模块系统 | CommonJS & 新版本 node 试验性 ES Module | ES Module 电脑浏览器完成 |
安全性 | 无安全性限定 | 默认设置安全性 |
Typescript | 第三方,如根据 ts-node 适用 | 原生态适用 应用具备缓存机制的快照更新TypeScript编译程序,因而Typescript也可以开箱即用 |
包管理 | npm node_modules | 原生态适用 应用内置包管理器来爬取网络资源;应用URL载入当地端或远程控制的dependencies |
异步操作 | 调整 | Promise |
包派发 | 去中心化 npmjs.com | 区块链技术 import url |
通道 | package.json 配备 | import url 立即引进 |
装包、检测、格式化硬盘 | 第三方如 eslint、gulp、webpack、babel 等 | 原生态适用 |
大显身手
HelloWorld
$ deno run https://deno.land/std/examples/welcome.ts
Download https://deno.land/std/examples/welcome.ts
Warning Implicitly using master branch https://deno.land/std/examples/welcome.ts
Compile https://deno.land/std/examples/welcome.ts
Welcome to Deno