deno serve
命令行用法
deno serve [OPTIONS] [SCRIPT_ARG]...
运行在主模块中定义的服务器
serve 命令使用主模块的默认导出确定要启动的服务器。
启动在 server.ts 中定义的服务器
deno serve server.ts
启动在 server.ts 中定义的服务器,监视更改并在端口 5050 上运行
deno serve --watch --port 5050 server.ts
类型检查选项 Jump to heading
--check
Jump to heading
启用类型检查。默认情况下,此子命令不执行类型检查。如果提供 "all" 值,将包含远程模块。或者,可以使用 'deno check' 子命令。
--no-check
Jump to heading
跳过类型检查。如果提供 "remote" 值,将忽略来自远程模块的诊断错误。
依赖项管理选项 Jump to heading
--cached-only
Jump to heading
要求远程依赖项已缓存。
--frozen
Jump to heading
如果 lockfile 过期,则报错。
--import-map
Jump to heading
从本地文件或远程 URL 加载导入映射文件。
--lock
Jump to heading
检查指定的 lock 文件。(如果未提供值,则默认为 "./deno.lock")。
--no-lock
Jump to heading
禁用自动发现 lock 文件。
--no-npm
Jump to heading
不解析 npm 模块。
--no-remote
Jump to heading
不解析远程模块。
--node-modules-dir
Jump to heading
设置 npm 包的 node_modules 管理模式。
--reload
Jump to heading
短标志:-r
重新加载源代码缓存(重新编译 TypeScript)。无值:重新加载所有内容。jsr:@std/http/file-server,jsr:@std/assert/assert-equals:重新加载特定模块。npm::重新加载所有 npm 模块。npm:chalk:重新加载特定 npm 模块。
--vendor
Jump to heading
切换本地 vendor 文件夹用于远程模块,以及 node_modules 文件夹用于 npm 包。
选项 Jump to heading
--allow-scripts
Jump to heading
允许为给定包运行 npm 生命周期脚本。注意:脚本仅在使用 node_modules 目录(--node-modules-dir
)时执行。
--cert
Jump to heading
从 PEM 编码文件加载证书颁发机构。
--config
Jump to heading
短标志:-c
配置 deno 的不同方面,包括 TypeScript、代码检查和代码格式化。通常,配置文件将被称为 deno.json
或 deno.jsonc
并自动检测;在这种情况下,此标志不是必需的。
--env-file
Jump to heading
从本地文件加载环境变量。仅使用给定键的第一个环境变量。现有进程环境变量不会被覆盖,因此如果环境中已存在同名变量,则其值将被保留。如果您的 .env 文件中存在同一环境变量的多个声明,则应用遇到的第一个声明。这由您作为参数传递的文件的顺序决定。
--ext
Jump to heading
设置所提供文件的内容类型。
--host
Jump to heading
要服务的 TCP 地址,默认为 0.0.0.0(所有接口)。
--location
Jump to heading
某些 web API 使用的 globalThis.location 的值。
--no-code-cache
Jump to heading
禁用 V8 代码缓存功能。
--no-config
Jump to heading
禁用自动加载配置文件。
--parallel
Jump to heading
并行运行多个服务器 worker。并行度默认为可用 CPU 的数量或 DENO_JOBS 环境变量的值。
--port
Jump to heading
要服务的 TCP 端口。传递 0 以选择随机空闲端口 [默认值:8000]
--seed
Jump to heading
设置随机数生成器种子。
--v8-flags
Jump to heading
要查看所有可用标志的列表,请使用 --v8-flags=--help
。标志也可以通过 DENO_V8_FLAGS 环境变量设置。使用此标志设置的任何标志都附加在 DENO_V8_FLAGS 环境变量之后。
调试选项 Jump to heading
--inspect
Jump to heading
在 host:port 上激活 inspector [默认值:127.0.0.1:9229]
--inspect-brk
Jump to heading
在 host:port 上激活 inspector,等待调试器连接并在用户脚本开始时中断。
--inspect-wait
Jump to heading
在 host:port 上激活 inspector,并在运行用户代码之前等待调试器连接。
文件监视选项 Jump to heading
--hmr
Jump to heading
监视文件更改并自动重启进程。默认情况下,会监视入口点模块图中的本地文件。可以通过将附加路径作为参数传递给此标志来监视它们。
--no-clear-screen
Jump to heading
在监视模式下不清除终端屏幕。
--watch
Jump to heading
监视文件更改并自动重启进程。默认情况下,会监视入口点模块图中的本地文件。可以通过将附加路径作为参数传递给此标志来监视它们。
--watch-exclude
Jump to heading
从监视模式中排除提供的文件/模式。
示例 Jump to heading
这是一个关于如何使用声明式 fetch 创建简单 HTTP 服务器的示例
export default {
async fetch(_req) {
return new Response("Hello world!");
},
};
然后,您可以使用 deno serve
命令运行服务器
deno serve server.ts
fetch
函数内部的逻辑可以自定义,以处理不同类型的请求并相应地提供内容
export default {
async fetch(request) {
if (request.url.startsWith("/json")) {
return Response.json({ hello: "world" });
}
return new Response("Hello world!");
},
};