OpenNext将Next.js的构建输出转换为可部署到任何函数即服务平台的软件包。
功能
OpenNext旨在支持所有Next.js 14的功能。一些功能仍在开发中。如果您有任何需求,请开启一个新issue告诉我们!
- App路由器和Pages路由器
- API路由
- 动态路由
- 静态站点生成(SSG)
- 服务器端渲染(SSR)
- 增量静态再生(ISR)
- 中间件
- 图像优化
- NextAuth.js
- 边缘运行
- 无冷启动
谁在使用OpenNext?
Gymshark UK、Udacity、TUDN、NHS England
示例
在example
文件夹中,您可以找到一个Next.js基准应用。它包含各种页面,每个页面测试一个单独的Next.js功能。该应用使用SST部署到Vercel和AWS。
AWS链接:https://d1gwt3w78t4dm3.cloudfront.net
Vercel链接:https://open-next.vercel.app
配置
环境变量
- AWS_SDK_DYNAMODB_MAX_ATTEMPTS:DynamoDB遇到可重试失败时应尝试的最大次数。默认为3。
- AWS_SDK_S3_MAX_ATTEMPTS:S3遇到可重试失败时应尝试的最大次数。默认为3。
- DYNAMO_BATCH_WRITE_COMMAND_CONCURRENCY:DynamoDB批量写入命令的并发数。默认为4,以便为生产负载保留足够的DynamoDB写入请求容量。
贡献
要在本地运行OpenNext
:
- 克隆此仓库。
- 构建
open-next
:cd open-next pnpm build
- 在监视模式下运行
open-next
:pnpm dev
- 现在,您可以在
open-next
中进行更改,并构建您的Next.js应用来测试这些更改。cd path/to/my/nextjs/app path/to/open-next/packages/open-next/dist/index.js build
致谢
我们感谢启发OpenNext的项目以及社区开发的出色工具和库:
- nextjs-lambda,由Jan开发,为将Next.js的独立输出打包到Lambda提供了灵感。
- CDK NextJS,由JetBridge开发,为在AWS上部署Next.js应用的架构做出了贡献。
- serverless-http,由Doug Moscrop开发,是一个出色的库,用于转换AWS Lambda事件和响应。
- serverless-nextjs,由Serverless Framework开发,为AWS上的serverless Next.js应用铺平了道路。
特别感谢@khuezy和@conico974对项目的杰出贡献。