构建
在 Deno Deploy 中,您应用程序代码的每个版本都被表示为一个修订(或构建)。当从 GitHub 部署时,修订通常与您仓库中的 git 提交一一对应。
构建触发 Jump to heading
构建可以通过两种方式触发:
-
手动触发:使用构建页面上的“部署默认分支”按钮,部署默认 git 分支(通常是
main)。下拉菜单允许您选择不同的分支。 -
自动触发:当向与您的应用关联的 GitHub 仓库推送新的提交时。
构建阶段 Jump to heading
一个修订在变为可用状态前会经历以下阶段:
- 排队:修订等待分配给构建器。
- 准备:构建器下载源代码并恢复可用的构建缓存。
- 安装:执行安装命令(如果指定),通常用来下载依赖。
- 构建:执行构建命令(如果指定),生成构建产物并上传到运行时基础设施。
- 预热:通过发起
GET /请求测试应用是否能正确启动并处理 HTTP 请求。 - 路由:配置全局基础设施,将请求路由到基于时间线的新修订。
如果任何步骤失败,构建将进入“失败”状态并且不会接收流量。
构建日志会在构建过程中实时推送到仪表盘,构建完成后仍可在构建页面查看。
构建缓存通过重用在构建间未更改的文件来加快构建速度。对于框架预设和 DENO_DIR 依赖缓存,此过程是自动进行的。
您可以使用构建页面右上角的“取消”按钮取消正在运行的构建。构建会在运行 5 分钟后自动取消。
构建配置 Jump to heading
构建配置定义了如何将源代码转换为可部署的产物。您可以在以下三处修改构建配置:
- 创建应用时点击“编辑构建配置”
- 在应用设置中点击构建配置部分的“编辑”
- 在失败构建页面的重试抽屉中
在创建应用时,如果您使用已识别的框架或常见构建配置,构建配置可能会自动从仓库中检测。
配置选项 Jump to heading
-
框架预设:针对支持的框架(如 Next.js 或 Fresh)做了优化的配置。了解更多框架集成。
-
安装命令:安装依赖的 shell 命令,如
npm install或deno install。 -
构建命令:构建项目的 shell 命令,通常是
package.json或deno.json中的任务,如deno task build或npm run build。 -
运行时配置:决定应用如何提供流量:
- 动态:用于通过服务器响应请求的应用(API 服务器、服务器渲染网站等)
- 入口文件:要执行的 JavaScript 或 TypeScript 文件
- 参数(可选):传递给应用的命令行参数
- 静态:用于提供预渲染静态内容的静态网站
- 目录:包含静态资源的文件夹(如
dist、.output) - 单页应用模式(可选):对不匹配静态文件的路径返回
index.html,而不是 404 错误
- 目录:包含静态资源的文件夹(如
- 动态:用于通过服务器响应请求的应用(API 服务器、服务器渲染网站等)
构建环境 Jump to heading
构建环境在 Linux 上运行,支持 x64 或 ARM64 架构。可用工具包括:
deno(与运行时版本相同)nodenpmnpxyarn(v1)pnpmgittargzip
构建器内部所有 JavaScript 代码均使用 Deno 执行。
node 命令实际上是一个 shim,负责将 Node.js 的调用转换为 deno run。类似地,npm、npx、yarn 和 pnpm 也都是通过 Deno 而非 Node.js 运行。
为“构建”上下文配置的环境变量在构建过程中可用,但来自“生产”或“开发”上下文的变量不可用。了解更多关于环境变量。
构建器在构建期间可用的存储空间为 8 GB。