opennextjs-cloudflare 命令行工具
Cloudflare 适配器提供了一个 opennextjs-cloudflare 命令行工具,用于开发、构建和部署您的应用程序。除非另有说明或您清楚自己在做什么,否则不应直接使用 wrangler 命令。
命令
opennextjs-cloudflare 支持多个命令,通过 opennextjs-cloudflare <command> 调用。
当前支持的命令有 build、populateCache、preview、deploy、upload 和 migrate。
您可以通过调用 pnpm opennextjs-cloudflare 列出命令,并通过调用 pnpm opennextjs-cloudflare <command> --help 获取特定命令的帮助。
大多数命令接受特定于命令的选项(即 pnpm opennextjs-cloudflare build --skipNextBuild --noMinify),也接受 wrangler 选项(即 pnpm opennextjs-cloudflare build --config=/path/to/wrangler.jsonc --env=prod)。
build 命令
它首先通过调用 package.json 的 build 脚本来构建 Next.js 应用程序——通常执行 next build。然后运行 Cloudflare 特定的构建步骤,以更新构建的文件使其能在 Cloudflare 运行时上运行。
populateCache 命令
它填充配置的 Open Next 缓存组件,以便缓存能在运行时工作。它可以填充本地机器开发期间使用的本地绑定(populateCache local),或部署应用程序使用的远程绑定(populateCache remote)。请注意,此命令由 preview、deploy 和 upload 命令隐式调用,因此在使用其中任何一个命令时无需显式调用 populateCache。
从 Cloudflare 适配器的 1.13.0 版本开始,预览和部署默认支持 R2 批量上传,无需任何额外设置。
在 Cloudflare 适配器 1.13.0 版本之前,populateCache 命令通过 rclone 支持 R2 批量上传,这需要以下额外设置:
populateCache 命令支持 R2 批处理以加速大量文件的上传。要启用 R2 批处理,您需要按照 文档 (opens in a new tab) 中的描述创建 R2 账户 API 令牌,并提供以下环境变量:
R2_ACCESS_KEY_ID:R2 API 令牌的访问密钥 IDR2_SECRET_ACCESS_KEY:R2 API 令牌的秘密访问密钥CLOUDFLARE_ACCOUNT_ID:R2 存储桶所在的 账户 ID (opens in a new tab)
preview 命令
它首先填充本地缓存,然后启动本地开发服务器(通过 wrangler dev),以便您可以在本地预览应用程序。
deploy 命令
它首先填充远程缓存,然后将您的应用程序部署到 Cloudflare(通过 wrangler deploy)。应用程序一旦部署完成就会开始提供服务。
upload 命令
它首先填充远程缓存,然后将应用程序的一个版本上传到 Cloudflare(通过 wrangler versions upload)。请注意,上传后应用程序不会自动提供服务。请参阅 渐进式部署 (opens in a new tab) 以了解有关如何提供上传版本的更多信息。
migrate 命令
将标准的 Next.js 项目转换为与 OpenNext 兼容的项目。此命令自动化了 入门指南 中描述的设置步骤,包括:
- 安装所需的依赖项(
@opennextjs/cloudflare和wrangler) - 创建
wrangler.jsonc配置文件 - 创建
open-next.config.ts文件 - 添加
.dev.vars文件 - 更新
package.json脚本 - 添加静态资产缓存头(
public/_headers) - 将
.open-next添加到.gitignore - 在 Next.js 配置中使用
initOpenNextCloudflareForDev()设置本地开发
此外,该命令还会创建一个 R2 存储桶并为其配置缓存。
仅当您的 Cloudflare 账户启用了 R2 时,才会创建用于缓存的 R2 存储桶。如果未启用 R2, migrate 命令不会执行任何缓存设置。请参阅 缓存文档 以获取手动配置缓存的信息。
在现有的 Next.js 项目中运行该命令:
npx @opennextjs/cloudflare migrate