deno deploy cli 是唯一部署入口,vscode 仅作编辑器;部署必须通过 deno deploy cli 完成,需全局安装 deno、配置 deno.jsonc(含 main 和 unstable 等权限)、用 deno task serve 本地预览,并务必指定 --project 参数。

Deno Deploy CLI 是唯一入口,VSCode 只是编辑器
VSCode 本身不提供 Deno Deploy 的部署能力,也没有官方插件支持一键部署。所有部署动作必须通过 deno deploy CLI 完成——VSCode 的作用仅限于写代码、调试、管理文件。如果你在找“右键→Deploy to Edge”这类功能,它不存在。
常见错误现象:command 'deno.deploy' not found(装了某第三方插件后报错)、VSCode 集成终端里运行 deno deploy 报 command not found。
- 确保已全局安装 Deno:
curl -fsSL https://deno.land/install.sh | sh,并把$HOME/.deno/bin加进$PATH - 确认
deno --version和deno deploy --help都能正常执行 - VSCode 终端若用的是 zsh/bash,但未重载 shell 配置,重启 VSCode 或手动执行
source ~/.zshrc
部署前必须用 deno.jsonc 配置 main 和 permissions
deno.jsonc 不只是类型提示配置,它是 Deno Deploy 的部署契约文件。缺少 main 字段会导致部署失败;权限字段(如 unstable、net)若与代码实际行为不匹配,函数会在边缘节点启动时报错或静默失败。
使用场景:你写了一个监听 POST /webhook 的边缘函数,用了 Deno.serve,但没在 deno.jsonc 中声明 "tasks" 或 "main",部署会卡在构建阶段。
-
main必须指向一个导出defaulthandler 的模块,例如:"main": "main.ts",且main.ts里有export default () => new Response("ok") - 不需要显式加
--allow-net等 flag:Deno Deploy 自动按代码分析所需权限,但若用了 unstable API(如Deno.serve),需在deno.jsonc中设"unstable": true - 避免把
deno.jsonc放错位置——必须在项目根目录,和main.ts同级
本地预览靠 deno task serve,不是 deno run
deno run 无法模拟 Deno Deploy 的边缘运行时环境(比如没有 Request 全局构造、不支持 Deno.serve 的某些选项)。直接跑会报 ReferenceError: Deno is not defined 或 TypeError: Deno.serve is not a function。
正确做法是定义一个 task,用 deno task serve 启动轻量 HTTP 服务,它会自动启用 unstable APIs 并模拟部署时的入口行为。
- 在
deno.jsonc中加:{ "tasks": { "serve": "deno run -A --unstable --watch main.ts" } } - 然后在终端运行
deno task serve,而不是deno run -A main.ts -
--watch很实用,但注意:它不会热重载Responsebody,改完 HTML/JSON 响应体要手动刷新浏览器
部署命令必须带 --project,否则推到默认项目而非你的团队空间
执行 deno deploy 时不指定 --project,它会把你当前代码推到个人默认项目(your-username/main),即使你属于某个组织、也设置了团队域名,这个行为也不会自动切换上下文。
容易踩的坑:你在公司项目里开发,想部署到 api.your-company.deno.dev,但忘了加 --project,结果函数上线后访问的是 your-username.deno.dev,且 DNS 不会自动同步。
- 先查可用项目列表:
deno deploy --list-projects - 部署命令示例:
deno deploy --project=api-prod main.ts - 如果项目名含短横线(如
api-staging),必须加引号:--project="api-staging" - 项目名区分大小写,且不能用下划线;首次部署会自动创建项目,但域名绑定需去 deploy.deno.dev 控制台手动操作
deno.jsonc、选准 --project,剩下的交给 deno deploy CLI 和它的部署管道。











