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 服务器的示例
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!");
},
};