新一代的 JavaScript/TypeScript 运行时 —— Deno

Deno 是什么?

Deno 是新一代的 JavaScrip 和 TypeScript 运行时环境。建立在 V8, Rust, TypeSctipt 之上。

安装体验

在 Linux 下安装体验:

1
$ curl -fsSL https://deno.land/x/install/install.sh | sh

脚本执行完成后需要手动将安装目录加入到环境变量中,即将以下脚本追加到 ~/.zshrc 或类似文件中。

1
2
export DENO_INSTALL="/home/gbin/.deno"
export PATH="$DENO_INSTALL/bin:$PATH"

安装成功后,执行 deno -h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
➜  ~ deno -h
deno 0.40.0
A secure JavaScript and TypeScript runtime

Docs: https://deno.land/std/manual.md
Modules: https://deno.land/std/ https://deno.land/x/
Bugs: https://github.com/denoland/deno/issues

To start the REPL, supply no arguments:
deno

To execute a script:
deno run https://deno.land/std/examples/welcome.ts
deno https://deno.land/std/examples/welcome.ts

To evaluate code in the shell:
deno eval "console.log(30933 + 404)"

Run 'deno help run' for 'run'-specific flags.

USAGE:
deno [OPTIONS] [SUBCOMMAND]

OPTIONS:
-h, --help Prints help information
-L, --log-level <log-level> Set log level [possible values: debug, info]
-q, --quiet Suppress diagnostic output
-V, --version Prints version information

SUBCOMMANDS:
bundle Bundle module and dependencies into single file
cache Cache the dependencies
completions Generate shell completions
doc Show documentation for module
eval Eval script
fmt Format source files
help Prints this message or the help of the given subcommand(s)
info Show info about cache or info related to source file
install Install script as executable
repl Read Eval Print Loop
run Run a program given a filename or url to the module
test Run tests
types Print runtime TypeScript declarations
upgrade Upgrade deno executable to newest version

ENVIRONMENT VARIABLES:
DENO_DIR Set deno's base directory
NO_COLOR Set to disable color
HTTP_PROXY Proxy address for HTTP requests (module downloads, fetch)
HTTPS_PROXY Same but for HTTPS

输出当前版本是 0.40.0,可选参数、子命令和环境变量比起 Node 还很有限,是学习 Deno 的好时机。deno 可以执行远程脚本,且内置了 TS 编译器,如

1
$ deno https://deno.land/std/examples/welcome.ts

简单体验后给人深入探索的欲望。

为什么要有 deno?

作者本想用 JS 做机器学习相关的框架,但是发现 JS 发展太快了,早就不是 2009 年开发 Node 时候的 JS 了,基于 JavaScript 的发展和 Node 的不足,决定开发 Deno。

Deno 保持了 JS 单线程的特点,集成了 TS 编译器,去中心化的模块导入机制。

Deno 使用 Rust 开发,不在选用 C++,

参考视频:

本文标题:新一代的 JavaScript/TypeScript 运行时 —— Deno

文章作者:Pylon, Syncher

发布时间:2020年04月09日 - 22:04

最后更新:2023年03月11日 - 17:03

原始链接:https://0x400.com/fundamental/programming-language/javascript/dev-deno-intro/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。