如何将预构建的 next.js 应用程序部署到 Vercel(没有 Git 集成)?

How to deploy a pre-built next.js app to Vercel (without Git integration)?

我真的在寻找一种(简单、直接的)方法来从现有的私有 Gitlab 存储库部署 next.js 应用程序并完成构建管道到 Vercel,但无需上传我的源代码或 运行 建立在他们的系统上;只是之前“构建的”next.js 包。

除了他们流行的存储库集成(此处不适合)之外,他们还提供 CLI tool and an HTTP API 用于手动发布。

然而,CLI 工具似乎也将整个存储库推送到 Vercel,并且不会部署任何东西,除非提供构建时信息,如“安装模块的命令”等。

API 有详细记录,但我想它的工作方式相同,但我找不到一个示例来说明我需要 select 上传哪些文件(哪个需要文件“列表”)。

在他们的文档中看起来像一个两步过程,调用 POST /v2/now/files 上传资产,然后 POST /v12/now/deployments 从这些资产创建部署。

只需 运行 构建管道中的一个异步函数以及对 Vercel 的几个 await 调用,您就应该设置好了。超级简化的示例,但如果您构建客户端和处理程序,我认为它应该或多或少是这样的:

// Assumes you put together a Vercel REST client and used the above endpoints
import { vercelClient } from '../lib/clients'
import { postFiles, createDeployment } from '../lib/handlers'

async function deployToVercel(files) {
  let errors 
  await postFiles({ payload: files }).catch(err => { errors = err }
  await createDeployment({ moreSettings: here }).catch(err => { errors = err }
}

您还可以使用 临时存储库 创建一个 新项目 – 它可以是 GitHub 上的一些空白存储库, 例如.

项目存在后,您可以断开Git repo,更改框架预设并设置CI管道发布pre-built/static HTML 网站在那里。

(我也觉得奇怪,不能通过他们的网站创建一个“空白”项目UI。)