跳至主要内容
在本页

deno serve

命令行用法

deno serve [OPTIONS] [SCRIPT_ARG]...

运行在主模块中定义的服务器

serve 命令使用主模块的默认导出以确定要启动的服务器。

启动在 server.ts 中定义的服务器

deno serve server.ts

启动在 server.ts 中定义的服务器,监听更改并在端口 5050 上运行

deno serve --watch --port 5050 server.ts

类型检查选项 跳转到标题

--check 跳转到标题

启用类型检查。此子命令默认不进行类型检查。如果提供值“all”,则将包含远程模块。或者,可以使用 'deno check' 子命令。

--no-check 跳转到标题

跳过类型检查。如果提供了 "remote" 的值,则会忽略来自远程模块的诊断错误。

依赖管理选项 跳转到标题

--cached-only 跳转到标题

要求远程依赖项已缓存。

--frozen 跳转到标题

如果锁文件过期,则报错。

--import-map 跳转到标题

从本地文件或远程 URL 加载导入映射文件。

--lock 跳转到标题

检查指定的锁文件。(如果没有提供值,则默认为 "./deno.lock")。

--no-lock 跳转到标题

禁用锁文件的自动发现。

--no-npm 跳转到标题

不解析 npm 模块。

--no-remote 跳转到标题

不解析远程模块。

--node-modules-dir 跳转到标题

为 npm 包设置 node_modules 管理模式。

--reload 跳转到标题

简写:-r

重新加载源代码缓存(重新编译 TypeScript) 无值 重新加载所有内容 jsr:@std/http/file-server,jsr:@std/assert/assert-equals 重新加载指定模块 npm: 重新加载所有 npm 模块 npm:chalk 重新加载指定的 npm 模块。

--vendor 跳转到标题

切换为远程模块使用本地 vendor 文件夹,以及为 npm 包使用 node_modules 文件夹。

选项 跳转到标题

--allow-scripts 跳转到标题

允许为给定包运行 npm 生命周期脚本 注意:脚本仅在使用 node_modules 目录 (--node-modules-dir) 时才会执行。

--cert 跳转到标题

从 PEM 编码的文件加载证书颁发机构。

--config 跳转到标题

简写:-c

配置 Deno 的不同方面,包括 TypeScript、linting 和代码格式化。通常,配置文件名为 `deno.json` 或 `deno.jsonc` 并会被自动检测;在这种情况下,无需使用此标志。

--env-file 跳转到标题

从本地文件加载环境变量 仅使用具有给定键的第一个环境变量。现有的进程环境变量不会被覆盖。

--ext 跳转到标题

设置所提供文件的 Content-Type。

--host 跳转到标题

要提供服务的 TCP 地址,默认为 0.0.0.0(所有接口)。

--location 跳转到标题

某些 Web API 使用的 globalThis.location 的值。

--no-code-cache 跳转到标题

禁用 V8 代码缓存功能。

--no-config 跳转到标题

禁用自动加载配置文件。

--parallel 跳转到标题

并行运行多个服务器工作进程。 并行度默认为可用 CPU 的数量或 DENO_JOBS 环境变量的值。

--port 跳转到标题

要提供服务的 TCP 端口。 传递 0 以选择随机空闲端口 [默认值:8000]

--seed 跳转到标题

设置随机数生成器种子。

--v8-flags 跳转到标题

要查看所有可用标志的列表,请使用 --v8-flags=--help。标志也可以通过 DENO_V8_FLAGS 环境变量进行设置。 使用此标志设置的任何标志都将追加到 DENO_V8_FLAGS 环境变量之后。

调试选项 跳转到标题

--inspect 跳转到标题

在 host:port 上激活检查器 [默认值:127.0.0.1:9229]

--inspect-brk 跳转到标题

在 host:port 上激活检查器,等待调试器连接并在用户脚本开始处中断。

--inspect-wait 跳转到标题

在 host:port 上激活检查器,并在运行用户代码之前等待调试器连接。

文件监视选项 跳转到标题

--hmr 跳转到标题

监视文件更改并自动重新启动进程。 默认情况下会监视入口点模块图中的本地文件。 可以通过将其他路径作为此标志的参数传递来监视它们。

--no-clear-screen 跳转到标题

在监视模式下不清除终端屏幕。

--watch 跳转到标题

监视文件更改并自动重新启动进程。 默认情况下会监视入口点模块图中的本地文件。 可以通过将其他路径作为此标志的参数传递来监视它们。

--watch-exclude 跳转到标题

从监视模式中排除提供的文件/模式。

示例 跳转到标题

以下是如何使用声明式 fetch 创建简单 HTTP 服务器的示例

server.ts
export default {
  async fetch(_req) {
    return new Response("Hello world!");
  },
};

然后,您可以使用 deno serve 命令运行服务器

deno serve server.ts

可以自定义 fetch 函数内的逻辑以处理不同类型的请求并相应地提供内容

server.ts
export default {
  async fetch(request) {
    if (request.url.startsWith("/json")) {
      return Response.json({ hello: "world" });
    }

    return new Response("Hello world!");
  },
};