概述
deno是现代化的JavaScript/TypeScript运行时,它默认以安全模式运行,并且具有很好的开发体验。使用deno运行代码可以省去为了运行较新的JavaScript特性配置TypeScript或Babel进行转码,安装大量的依赖包,以及一系列繁琐的磨人的配置。可以说deno大大提高了开发效率,提升开发体验,美中不足的是它现在还比较新,许多特性还不稳定,目前生产中几乎很少用或处于实验阶段。不过它发展迅速,相信在不久的将来会被广泛使用,我预测这可能也就是一两年的事情。所以要跟上步伐,不要拖后腿哟!趁青春年少,多学一点,有备无患。
特性
- 默认安全模式 文件、网络以及环境变量访问都需要显式启用;
- 支持TypeScript特性;
- 单一的执行器,内置了一组常用的标准模块;
- 完全兼容现代浏览器;
- 提供了常用的内置工具,如语法检查、代码美化、单元测试、打包压缩、文档生成等
- 支持Nodejs大多特性,如HTTP。
与Nodejs的比较
- 不再使用
npm或yarn之类的包管理工具,模块以URL或文件路径的形式访问; - 不再依赖
package.json解析模块引用; - 所有异步操作都返回Promise;
- 需要显示地授权访问;
- 总是依赖异常捕获;
- 直接支持ES模块,不支持
require(),第三方模块以URL形式导入。
注意: 远程代码获取之后会缓存,直到使用--reload标记后才会更新。
安装Deno环境
- 使用Shell安装(Mac and Linux)
curl -fsSL https://deno.land/x/install/install.sh | sh
- 使用Cargo安装(Window,MacOS, Linux),需要配置Rust运行环境
cargo install deno
- 二进制包安装(推荐) 因为简单
直接访问https://github.com/denoland/deno/releases在对应版本的Asset下下载相应系统的二进制包安装
- 检测安装
deno --version
- 获取命令帮助信息
deno help
deno -h
- 升级版本
deno upgrade --version 1.2.6
注意: 可能会由于翻墙的原因会导致运行错误,这时可能需要设置代理环境变量HTTP(S)_PROXY
如Clash翻墙设置(Windows环境)
set http_proxy=http://127.0.0.1:7890
echo %http_proxy%
设置环境
- 设置环境变量
- DENO_DIR 创建和缓存代码的目录
- NO_COLOR 设置CLI输出信息颜色开关
- IDE插件
VS Code插件 vscode_deno
运行实例
本地运行
文件: wecome.ts
console.log(`Wecome to learn deno!`);
deno run ./wecome.ts
运行远程代码
deno run --no-check --allow-net=www.baidu.com https://deno.land/std@0.65.0/examples/curl.ts https://www.baidu.com/s?wd=deno