AWS
工作原理

在调用 open-next build 时,OpenNext 会执行以下操作:

  1. 运行 next build 构建 Next.js 应用
  2. 转换构建输出 为可部署到 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 目录需要)