You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NextJS Turbo Monorepo部署AWS Amplify时出现内部服务器错误

NextJS Turbo Monorepo部署AWS Amplify出现Internal Server Error的排查与修复

针对Turbo Monorepo在Amplify构建成功但页面显示Internal Server Error的问题,结合Vercel的成功部署经验,可按以下步骤排查修复:

1. 修正构建上下文与依赖安装命令

Amplify的appRoot设置为apps/client,但当前preBuild阶段先进入client目录再执行pnpm install,会导致Turbo无法正确识别monorepo根目录的工作区配置。调整preBuild命令,直接在monorepo根目录执行依赖安装:

preBuild:
  commands:
    - npm i pnpm --global
    - pnpm install # 无需进入client目录,pnpm自动识别根目录的workspace配置

2. 优化构建命令与缓存配置

当前build命令的路径跳转冗余,且缓存配置未覆盖Turbo的核心缓存目录,调整如下:

build:
  commands:
    - npx turbo run build --filter=client # 直接在根目录执行Turbo构建
cache:
  paths:
    - node_modules/**/*
    - .turbo/**/* # 加入Turbo的全局缓存目录
    - apps/client/.next/cache/**/*

3. 核对环境变量配置

Vercel会自动适配NextJS的环境变量注入逻辑,但Amplify需手动配置所有项目依赖的环境变量:

  • 登录Amplify控制台,进入应用的「环境变量」页面
  • 添加所有项目中用到的变量,包括NEXT_PUBLIC_开头的前端变量,以及内部服务使用的后端变量
  • 确保变量名和值与Vercel上的配置完全一致

4. 检查NextJS运行时文件完整性

Amplify部署NextJS时需确保构建产物包含完整的运行时文件:

  • 确认Turbo构建后,apps/client/.next目录下存在server文件夹(若使用SSR/ISR)
  • 在apps/client/package.json中添加build脚本:"build": "turbo run build --filter=client",可简化Amplify的构建命令为npm run build

5. 查看服务器端日志定位具体错误

构建无错但运行时出错,必须查看Amplify的服务器日志:

  • 进入Amplify应用控制台,点击左侧「监控」->「日志」
  • 查看「Web服务器日志」,里面会记录具体的错误原因(如模块缺失、环境变量未加载、路由配置错误等)

内容的提问来源于stack exchange,提问作者Haroon Rashid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 12:52:40