什么是 Deno

Deno 是一个简单、先进且安全的 JavaScript 和 TypeScript 运行时环境,其基于 V8 引擎并采用 Rust 编程语言构建。

为什么放弃Node.js

随着JavaScript的发展,ES6标准引入大量新的语法特性,例如Promise、ES模块,Node对着两个新语法的支持并不是很好。其次Node的模块管理工具npm,逻辑越来越复杂,模块安装目录过于庞大,难以管理,功能不全,导致外部工具过多。基于以上问题Ryan Dahl决定放弃Node.js。

Deno的优点

1、Deno在支持解释JavaScript的同时,也支持TypeScript,可以直接运行,不必显式转码,它内部会根据文件后缀名判断,.ts后缀先调用TS编译器,.js直接运行。
2、使用Rust语言开发,所以也可以直接运行 WebAssembly。
3、Deno只有一个可执行文件,所有操作都通过这个文件完成,支持跨平台(Mac、Linux、Windows)。
4、Deno具有安全控制,默认情况下脚本不具有读写权限。
5、Deno支持Web API,提供window全局对象,同时支持addEventListener等事件操作函数,此外Deno所有的异步操作,一律返回Promise。
6、Deno只支持ES模块,没有npm,没有npm_modules目录,没有require()命令,也不需要package.json文件。模块通过URL加载,比如 import { bar } from "https://foo.com/bar.ts" 或 import { bar } from './foo/bar.ts'。但Deno下载模块以后,依然会有一个总的目录,在本地缓存模块,因此可以离线使用。
7、Deno内置了开发者需要的各种功能,不再需要外部工具。打包、格式清理、测试、安装、文档生成、linting、脚本编译成可执行文件等,都有专门命令。内置工具集

deno bundle:将脚本和依赖打包
deno eval:执行代码
deno fetch:将依赖抓取到本地
deno fmt:代码的格式美化
deno help:等同于-h参数
deno info:显示本地的依赖缓存
deno install:将脚本安装为可执行文件
deno repl:进入 REPL 环境
deno run:运行脚本
deno test:运行测试

使用方法

官方提供下载方式
macOS 和 Linux 系统上使用 shell
curl -fsSL https://deno.land/x/install/install.sh | sh
Windows 系统上使用 PowerShell
wr https://deno.land/x/install/install.ps1 -useb | iex

国内deno_install 会从 GitHub Release 下载 Deno 可执行文件,所以国内用户推荐使用以下方式
macOS 和 Linux 系统上使用 shell
curl -fsSL https://x.deno.js.cn/install.sh | sh
Windows 系统上使用 PowerShell
iwr https://x.deno.js.cn/install.ps1 -useb -outf install.ps1; .\install.ps1

也可通过链接手动下载 github.com/denoland/deno/releases

image.png

安装成功后通过命令deno --version 查看版本


image.png

REPL

输入deno命令,会启动一个REPL(Read-Execute-Print-Loop,读取-求值-输出,是一个简单的,交互式的编程环境。)


image.png

demo

image.png

缺点

报错查找比较困难,当我import过多链接的时候,若其中有一个链接import失败,就会导致一下情况,且难以排查错误


image.png

Node兼容

Node.js 兼容模式

从 v1.15 开始,Deno 提供了 Node 兼容模式,可以直接在 Deno 中运行为 Node.js 编写的程序子集。兼容模式可以通过--compat在 CLI 中传递标志来激活。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容