Skip to main content
On this page

开始使用 Deno

Deno (/ˈdiːnoʊ/, 发音为 dee-no) 是一个 开源 的 JavaScript、 TypeScript 和 WebAssembly 运行时,具有安全默认设置和出色的开发者 体验。本页将带你在几分钟内从零开始完成一个可运行、可测试的项目。

为什么选择 Deno? Jump to heading

  • 可与现有的 Node.js 项目 协同工作。 将 Deno 直接放入一个包含 package.jsonnode_modules 的仓库中,它就能直接运行; 在迁移过程中,可以混用 npm: 导入和原生 ES 模块。
  • 现代模块系统。 带有 URL 导入的 ES 模块、用于类型化包的 JSR 以及 工作区
  • 以 TypeScript 为先 可直接运行 .ts 文件。 无需 tsc,无需构建步骤,无需配置。
  • 默认安全 代码运行在沙箱中, 在你授予权限之前,无法访问文件、网络或环境。
  • 完整工具链,无需额外搭建。 内置 格式化器检查器测试运行器、基准测试,以及 更多功能。无需配置 devDependencies

安装 Deno Jump to heading

使用一条命令安装运行时:

>_
curl -fsSL https://deno.land/install.sh | sh
pwsh
irm https://deno.land/install.ps1 | iex

验证安装:

>_
deno --version

有关包管理器、Docker 和其他选项,请参阅 安装

创建项目 Jump to heading

使用 deno init 脚手架创建一个新项目:

>_
deno init my_project

这会创建一个小型、可直接运行的项目:

my_project
├── deno.json      # 项目配置:任务、导入、lint/fmt 设置
├── main.ts        # 基于 Deno.serve 构建的一个小型 HTTP 服务器
└── main_test.ts   # 它的测试

deno.json 是你的任务、依赖项和工具配置所在的位置。 可以把它看作一个文件中同时包含 package.json 和你的工具配置。

运行它 Jump to heading

>_
$ cd my_project
$ deno -N main.ts
Listening on http://localhost:8000/

注意 -N(即 --allow-net 的简写)。Deno 默认安全:在你授予权限之前,代码不能访问 网络、文件系统或环境。打开该 URL 查看响应。

main.ts 是 TypeScript,并且是直接运行的:无需 tsc,无需构建步骤。它还基于 Web 标准的 Deno.serveRequest/Response 构建,因此你在这里学到的是平台本身,而不是某个框架。

测试它 Jump to heading

项目自带测试。使用 deno test 运行它们。测试运行器是内置的,因此无需安装任何东西:

>_
$ deno test
running 2 tests from ./main_test.ts
returns html on / ... ok (12ms)
returns json on /api ... ok (0ms)

ok | 2 passed | 0 failed (15ms)

添加依赖 Jump to heading

使用 deno install 从 npm 或 JSR 拉取包:

>_
deno install express            # 任意 npm 包,就像 npm install 一样
deno install jsr:@std/assert    # Deno 标准库,位于 JSR 上

然后导入并使用它们:

import { assertEquals } from "@std/assert";

assertEquals(1 + 1, 2);

使用内置工具链 Jump to heading

格式化、检查等功能都随运行时附带,无需额外设置:

>_
deno fmt     # 格式化你的代码
deno lint    # 捕获问题
deno task    # 运行在 deno.json 中定义的脚本

接下来的步骤 Jump to heading

Last updated on

Did you find what you needed?

编辑此页面
Privacy policy