Cloudflare
概览

Cloudflare 适配器

@opennextjs/cloudflare (opens in a new tab) 适配器允许您使用 Next.js 的 Node.js "运行时" (opens in a new tab) 将 Next.js 应用部署到 Cloudflare Workers (opens in a new tab)

快速开始

新建应用

要创建一个新的 Next.js 应用,并预配置为使用 @opennextjs/cloudflare 运行在 Cloudflare 上,请运行:

npm create cloudflare@latest -- my-next-app --framework=next --platform=workers
现有 Next.js 应用

按照 此指南@opennextjs/cloudflare (opens in a new tab) 与现有 Next.js 应用一起使用。

支持的 Next.js 运行时

Next.js 有 两种"运行时" (opens in a new tab) —— "Edge" 和 "Node.js"。当您使用 @opennextjs/cloudflare 时,您的应用应该使用功能更全面的 Node.js 运行时,这样可以利用 Cloudflare Workers 运行时提供的 Node.js API (opens in a new tab)

这与 @cloudflare/next-on-pages 有重要区别,后者仅支持 "Edge" 运行时。Next.js 中的 Edge 运行时代码 有意限制了可使用的 Node.js API (opens in a new tab),且 "Edge" 运行时不支持所有 Next.js 功能。

支持的 Next.js 版本

支持 Next.js 15 的所有次要版本和补丁版本,以及 Next.js 14 的最新次要版本。

为了帮助提高兼容性,我们鼓励您 报告错误 (opens in a new tab) 并贡献代码!

支持的 Next.js 功能

我们欢迎贡献和反馈!

Windows 支持

OpenNext 可以在 Windows 系统上使用,但我们不保证对 Windows 的完全支持,原因如下:

  • Next.js 工具链本身存在 Windows 支持问题,而 OpenNext 正是基于这些工具构建的
  • OpenNext 团队资源有限,考虑到上述因素,完全支持 Windows 被确定为较低优先级,因此在 Windows 上的开发和测试投入有限

基于以上情况,您可以在 Windows 上自行承担风险进行应用开发。如果没有其他选择,我们建议您:

Windows Subsystem for Linux (WSL) 允许您在 Windows 机器上运行 Linux 环境,而无需单独的虚拟机或双系统启动。Visual Studio Code 提供了一个扩展 (opens in a new tab),可以非常方便地在 WSL 中进行开发。

@opennextjs/cloudflare 工作原理

OpenNext Cloudflare 适配器通过转换 Next.js 的构建输出,使其能够在 Cloudflare Workers 中运行。

当你在 Next.js 应用中添加 @opennextjs/cloudflare (opens in a new tab) 作为依赖,并运行 npx opennextjs-cloudflare 命令时,适配器会首先执行 package.json 中的 build 脚本来构建你的应用,然后将构建输出转换为可以使用 Wrangler (opens in a new tab) 本地运行并部署到 Cloudflare 的格式。

你可以查看 @opennextjs/cloudflare源代码 (opens in a new tab)来了解其底层实现原理。

关于 Worker 大小限制的说明

Cloudflare Worker 的大小限制在 Workers 免费计划中是 3 MiB,在 Workers 付费计划中是 10 MiB。构建 Worker 后,wrangler 会显示原始大小和压缩后的大小:

Total Upload: 13833.20 KiB / gzip: 2295.89 KiB

只有后者(压缩后大小)会影响到 Worker 的大小限制 (opens in a new tab)