Deno 是一个简单、现代且安全的 JavaScript 和 TypeScript 运行时。它使用 JavaScript 和 WebAssembly 引擎 V8 并且使用 Rust 构建。该项目在 MIT 许可下开源,由 Ryan Dahl 创建,他也是 Node.js 的开发者。
Deno 的 GitHub 仓库 概述了其目标
- 只发布一个可执行文件 (
deno
)- 提供安全默认值
- 除非明确允许,否则脚本无法访问文件、环境或网络。
- 浏览器兼容:完全用 JavaScript 编写且不使用全局
Deno
命名空间(或进行特性测试)的 Deno 程序的子集,也应该能够在现代 Web 浏览器中运行而无需更改。- 提供内置工具,例如单元测试、代码格式化和 linting,以改善开发者体验。
- 不会将 V8 概念泄漏到用户领域。
- 能够高效地服务 HTTP
该仓库还描述了 Deno 与 NodeJS 的不同之处
- Deno 不使用 npm。
- 它使用引用为 URL 或文件路径的模块。
- Deno 在其模块解析算法中不使用
package.json
。- Deno 中的所有异步操作都返回一个 promise。因此,Deno 提供了与 Node 不同的 API。
- Deno 需要文件、网络和环境访问的明确权限。
- Deno 总是在未捕获的错误时终止。
- 使用“ES 模块”,不支持
require()
。第三方模块通过 URL 导入
import * as log from "https://deno.land/std@$STD_VERSION/log/mod.ts";
安装 Deno

(Bryant Son,CC BY-SA 4.0)
Deno 的网站上有针对各种操作系统的 安装说明,其完整的源代码可在其 GitHub 仓库 中获得。我运行 macOS,因此我可以使用 HomeBrew 安装 Deno
$ brew install deno
在 Linux 上,您可以从 Deno 的服务器下载、阅读然后运行安装脚本
$ curl -fsSL https://deno.land/x/install/install.sh
$ sh ./install.sh
运行 Deno
安装 Deno 后,运行它的最简单方法是
$ deno run https://deno.land/std/examples/welcome.ts
如果您浏览 欢迎示例,您应该会看到一行打印“Welcome to Deno”和恐龙图标。 这是网站上也可以找到的一个稍微复杂的版本
import { serve } from "https://deno.land/std@0.83.0/http/server.ts";
const s = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of s) {
req.respond({ body: "Hello World\n" });
}
使用 .tx
扩展名保存文件。 使用以下命令运行它
$ deno run --allow-net <name-of-your-first-deno-file.ts>
--allow-net
标志可能不是必需的,但如果您看到类似 error: Uncaught PermissionDenied: network access to "0.0.0.0:8000
的错误,则可以使用它。
现在,打开浏览器并访问 localhost:8080
。 它应该打印“Hello, World!”
就这样! 您可以在我录制的这个视频中了解有关 Deno 的更多信息。
您如何看待 Deno? 请在评论中分享您的反馈。
评论已关闭。