Amazon Amplify部署Next.js应用时出现构建失败问题求助
针对Amazon Amplify部署Next.js构建失败的解决步骤
1. 匹配Node.js版本
Next.js 13及以上版本要求Node.js版本≥16.8.0,Amplify默认构建镜像的Node版本偏低会直接触发构建失败,按以下方式调整:
- 进入Amplify控制台对应应用的「构建设置」-「构建镜像设置」,手动指定Node.js版本为18.x或更高,和本地开发环境使用的版本保持一致
- 也可在项目根目录新增
.nvmrc文件,写入你使用的Node版本号(例如18.17.0),Amplify构建流程会自动读取该文件匹配版本
2. 修正构建配置文件
检查项目根目录的amplify.yml配置,确保构建阶段、产物路径配置符合Next.js要求,参考配置如下:
version: 1 frontend: phases: preBuild: commands: - npm ci # 用yarn则替换为yarn install --frozen-lockfile,用pnpm则替换为pnpm install --frozen-lockfile build: commands: - npm run build artifacts: baseDirectory: .next files: - '**/*' cache: paths: - node_modules/**/* - .next/cache/**/*
3. 修复依赖安装问题
- 删除本地的
node_modules文件夹和对应的锁文件(package-lock.json/yarn.lock/pnpm-lock.yaml),重新执行依赖安装命令生成新的锁文件后再提交代码 - 如果项目用到私有npm包,需要在Amplify应用的环境变量中配置
NPM_TOKEN权限凭证
4. 调整Next.js输出配置
- 若你需要部署SSR/ISR能力的Next.js应用,不要在
next.config.js中添加output: 'export'配置,当前Amplify已原生支持Next.js服务端渲染部署 - 若你只需要部署静态站点,可添加上述配置,同时将
amplify.yml中的baseDirectory改为out
内容的提问来源于stack exchange,提问作者Kiran Kumar
相关产品推荐
相关产品推荐

