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 应用
请遵循 此处 的指南,在现有的 Next.js 应用中使用 @opennextjs/cloudflare (opens in a new tab)。
支持的 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 16 的所有次版本和补丁版本,以及 Next.js 14 和 15 的最新次版本。 Next.js 14 的支持将于 2026 年第一季度停止。它已被 Next.js 团队 不再支持 (opens in a new tab)。
为了帮助提高兼容性,我们鼓励您 报告 bug (opens in a new tab) 并贡献代码!
支持的 Next.js 功能
- App 路由 (opens in a new tab)
- 路由处理器 (opens in a new tab)
- 动态路由 (opens in a new tab)
- 静态站点生成 (SSG) (opens in a new tab)
- 服务器端渲染 (SSR) (opens in a new tab)
- 中间件 (opens in a new tab)
- 15.2 中引入的 Node 中间件 (opens in a new tab) 尚不支持
- 图像优化 (opens in a new tab)(参见 本指南 配置 Cloudflare Images (opens in a new tab))
- 部分预渲染 (PPR) (opens in a new tab)
- Pages 路由 (opens in a new tab)
- 增量静态再生 (ISR) (opens in a new tab)
- 支持 after (opens in a new tab)
- 可组合缓存 (opens in a new tab) (
'use cache') - Turbopack (opens in a new tab)
我们欢迎贡献和反馈!
Windows 支持
OpenNext 可以在 Windows 系统上使用,但无法保证对 Windows 的完整支持,原因如下:
- Next.js 自身的工具链就存在 Windows 支持问题,而 OpenNext 又建立在这些工具之上
- OpenNext 团队的资源有限,而考虑到上面这一点,完整支持 Windows 的优先级较低,因此在 Windows 上的投入和测试也较少
基于以上原因,您可以自行承担风险在 Windows 下开发应用。如果您没有其他选择,我们建议您:
- 使用 适用于 Linux 的 Windows 子系统(WSL) (opens in a new tab) 运行 OpenNext
- 在 Linux 虚拟机中运行
- 使用标准的 Next.js 工具链开发,并通过在 Linux/MacOS 环境中运行的 CI/CD 系统(例如 GitHub Actions (opens in a new tab))使用 OpenNext 部署应用
适用于 Linux 的 Windows 子系统(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 的格式。
您可以 此处 (opens in a new tab) 查看 @opennextjs/cloudflare 的代码,以了解其底层工作原理。
关于 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)。