本文不是一篇 Deno 开发的完整教程,在阅读本文前你应该已经听说过 Deno 并且了解 Deno 的相关概念。
1. 安装
Deno 提供了多种安装方式。
如果你使用 Linux/Mac 系统,可以通过 shell 安装:
curl -fsSL https://deno.land/x/install/install.sh | sh
如果你使用 Windows 系统,可以通过 PowerShell 安装:
iwr https://deno.land/x/install/install.ps1 -useb | iex
你还可以通过其他包管理工具来安装,比如 scoop、brew、choco 等。Deno 是使用 rust 开发的,因此如果你是 rust 开发者,你甚至可以通过 cargo install deno
来安装。
安装完成后运行:
deno https://deno.land/std/examples/welcome.ts
如果能够正常输出 Welcome to Deno 🦕
那就说明 Deno 已经正确安装了。
2. 配置
大部分开发者都是使用 VS Code 进行开发,但是 VS Code 并没有提供开箱即用的 Deno 支持,我们需要先安装支持 Deno 的 vscode-deno 扩展。
安装完成后右下角会出现 Deno 的指示区,后面显示当前安装的 Deno 版本,鼠标滑过会显示更详细的版本。

新建一个 .ts 文件,当我们输入 Deno.
之后,插件可以自动提示函数、参数、类型等。

3. 开发
我们先按照官方教程写一个简单的例子:一个 cat 程序。(PS:这个程序和猫没有任何关系,是 linux 的 cat 命令)
新建 cat.ts 文件,输入:
for (let i = 0; i < Deno.args.length; i++) {
let filename = Deno.args[i];
let file = await Deno.open(filename);
await Deno.copy(Deno.stdout, file);
file.close();
}
当你输入完这几行代码后,VS Code 会在 await
处标红,我们可以直接忽略这个警告。vscode-deno 扩展也正在尝试解决这个问题。
如果你觉得这个警告太碍眼,可以通过手动添加一行 export {};
来解决这个问题,这时 TypeScript 会把这个文件当作 module 处理。
4. 运行
我们现在可以使用 deno 来运行刚刚写的 .ts 文件:
deno cat.ts
没有任何输出。因为 cat 的功能是连接 N 个多件并输出,所以这个程序还要传入 1-n 个参数。那我们试着让这个程序输出自己,我们把 cat.ts 作为第 0 个参数传入:
deno cat.ts cat.ts
直接抛出了异常:
error: Uncaught PermissionDenied: read access to "/Users/justjavac/deno/cat.ts", run again with the
--allow-read
flag
因为 Deno 默认是沙箱安全的,除非用户运行的时候显式指定了 --allow-read
参数,否则 deno 程序无法读取文件。
我们添加参数后再次运行:
deno --allow-read cat.ts cat.ts
此时我们可以看到正确的输出。
5. 说明
deno cat.ts
是 deno run cat.ts
的缩写形式。完整形式为:
deno run [OPTIONS] <SCRIPT_ARG>...
OPTIONS
是传递给 deno 的参数,除了前面的 --allow-read
外,还有一些常用的:
--allow-run
:允许创建子程序--allow-net
:允许访问网络--allow-env
:允许访问环境变量--allow-all
:允许所有
除了权限相关的参数外,还有其他的参数。可以通过运行 deno run -h
查看所有参数。
6. 总结
这是本专栏第一篇文章,本文的目的是让开发者一览 Deno 的功能。如果你对 Deno 感兴趣可以点击左下角的阅读原文来关注我们的知乎专栏[Deno 开发者社区]。
7. 相关阅读
本文分享自微信公众号 - justjavac(justjavac-blog)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。