在调用 open-next build
时,OpenNext 会执行以下操作:
- 运行
next build
构建 Next.js 应用 - 转换构建输出 为可部署到 AWS 的格式
构建 Next.js 应用
OpenNext 会执行您 package.json
文件中定义的 build
脚本。根据应用目录中检测到的锁文件类型,将自动选择对应的包管理器执行构建命令,可能是 npm run build
、yarn build
或 pnpm build
。如需自定义构建命令,请参阅覆盖构建命令。
转换构建输出
构建完成后,输出内容会被转换为适合 AWS 部署的格式。转换后的输出文件将生成在 Next.js 应用目录下的 .open-next
文件夹中。其中:
assets/
目录中的文件可直接上传至 AWS S3- 函数代码会被封装为 Lambda 处理器,准备部署到 AWS Lambda 或 Lambda@Edge
my-next-app/
.open-next/
cache/ -> 待上传的 ISR 缓存文件(不可直接提供访问)
assets/ -> 待上传的静态文件
server-functions/
default/ -> 默认服务器的处理器代码
other-fn/ -> 其他后端服务的处理器代码
revalidation-function/ -> 重新验证后端的处理器代码
image-optimization-function/ -> 图片优化后端的处理器代码
warmer-function/ -> 保持服务器函数活跃的定时任务代码(非必需)
dynamodb-provider/ -> 用于填充标签缓存的自定义资源代码(仅 app 目录需要)