有人在使用 Deno,非常少。
Deno 自 1.0 发布以来我收到的最多的问题就是“Deno 有人在使用吗”?
这是一个很尴尬的问题,以我目前掌握的信息来看,目前的情况是:很多人在学,也有一部分表示想学,但是真正使用 Deno 的,则非常少。
首先,虽然 Deno 已经发布了 1.0 正式版,但是 deno 标准库(deno std modules) 依然是 0.x,这意味着虽然 deno 核心 api 稳定了,但是标准库的模块并不稳定,将来可能变更。
Deno 的核心非常小,也只提供了底层必须的 API,如果直接使用这些 API 开发也是可以的,但是会非常难以使用。
为了更好的开发体验,Deno 还开发了 20 多个标准库来处理文件、网络、编码、权限等场景。在这些标准库中又一个库对 Deno 的发展非常重要,那就是 std/node 库。这个库提供了 Node.js 和 Deno 的兼容层,大概是这样的:
// 导入 createRequire 函数
import { createRequire } from "https://deno.land/std/node/module.ts";
const require = createRequire(import.meta.url);
// 模拟加载 native 模块
const path = require("path");
// 加载文件(不需要扩展名)
const cjsModule = require("./my_mod");
// 从 node_modules 加载模块
const leftPad = require("left-pad");
上面代码的 require("path")
并不是加载的 node 的 path 模块,而是加载了 https://deno.land/std/node/path.ts
目前 std/node 的完成度非常低,大概只有 1/3。等这个完成后,标准库会发布 1.0 正式版。
我感觉 deno 1.0 的发布只是为了庆祝 deno 开发两周年。
如果你对 Deno 感兴趣,那么你可以现在就开始学习了。如果你想用 Deno,三思啊。