在 JavaScript 的 Runtime 中,Node 是占有绝对的统治地位,我想大概是因为 JavaScript 作为服务端语言并不普遍,以及 Node 的生态太过于丰富。

Deno 同样也是非常好的 JavaScript Runtime,而且他给我的体验比 Nodejs 更好。

Deno

Deno,官网地址。和 Node 一样都是基于 V8 的运行时,有点不同的是 Deno 默认就支持了 TypeScript,提供了 Http 服务器类库等。对于这些 Node 需要自行添加需要的依赖来支持。

安装

Deno 支持 macOS, Windows, Linux,安装这里的方法安装

安装完成后在控制台中输入

$ deno -v

查看到 deno 版本。

运行

deno 可以直接运行 TypeScript,创建一个 ts 文件:index.ts,随便写一点代码,如:

//# index.ts

function add(a: number, b: number): number {
        return a + b;
}

let sum: number = add(1, 2);

console.log(sum);

然后使用 deno 运行:

$ deno index.hs

能够看到输出:

3

作为服务器

使用 Deno 作为服务器也是不错的选择,它默认就提供了用于构建 Http 服务器的库,创建一个新文件 server.ts 并写入:

Deno.serve((_req) => {
  return new Response("Hello, World!");
});

然后使用 deno 运行:

deno run --allow-net server.ts

这里使用到了参数 --allow-net,是为了使用网络权限,在 deno 中网络权限默认是关闭的。

到这里运行 TypeScript 和 Http 服务器,都不需要安装任何的依赖。

服务器的文档可以查看 这里