Turborepo单仓库部署AWS Amplify构建报错求助
解决AWS Amplify部署Turborepo+pnpm Monorepo的Next.js模块缺失问题
问题根源
你遇到的MODULE_NOT_FOUND错误,本质是Amplify构建流程里只安装了pnpm CLI,但没有执行依赖安装命令,导致Turbo执行next build时找不到Next.js的可执行文件。
修复步骤
1. 修改amplify.yml添加依赖安装逻辑
因为是monorepo结构,必须在根目录执行pnpm install拉取所有workspace的依赖。调整两个应用的preBuild阶段:
version: 1 applications: - appRoot: apps/web frontend: phases: preBuild: commands: - npm install -g pnpm@6.32.3 # 锁定pnpm版本和项目声明一致 - pnpm install # 新增:安装所有monorepo依赖 build: commands: - npm run build -- --filter=web # 用根目录脚本替代npx,避免路径问题 artifacts: baseDirectory: apps/web/.next files: - "**/*" cache: paths: - node_modules/**/* - .pnpm-store/**/* # 新增:缓存pnpm仓库,加速后续构建 buildPath: / - appRoot: apps/chat frontend: phases: preBuild: commands: - npm install -g pnpm@6.32.3 - pnpm install build: commands: - npm run build -- --filter=chat artifacts: baseDirectory: apps/chat/.next files: - "**/*" cache: paths: - node_modules/**/* - .pnpm-store/**/* buildPath: /
2. 额外验证点
- 检查
apps/web和apps/chat的package.json,确保next依赖已正确声明,且版本和报错中的13.4.7匹配。 - 前往Amplify控制台手动清理构建缓存,再重新触发构建,避免旧缓存干扰。
内容的提问来源于stack exchange,提问作者ceeejeey
相关产品推荐
相关产品推荐

