Nuxt3在AWS Amplify部署失败:找不到deploy-manifest.json文件
Nuxt3静态构建部署AWS Amplify时找不到deploy-manifest.json的解决办法
你遇到的这个错误是因为Amplify托管机制在寻找框架适配器生成的deploy-manifest.json,但Nuxt3静态生成模式不会自动生成该文件。以下是几个可行的解决思路:
1. 关闭Amplify的Nuxt框架适配器
Amplify会自动检测Nuxt项目并启用官方框架适配器,该适配器主要服务于SSR/SSG进阶部署,但静态生成(npm run generate)场景不需要它:
- 进入Amplify控制台目标应用 -> Hosting -> Settings -> Build settings
- 找到Framework version部分,选择None
- 保存后重新触发构建
2. 调整buildSpec的产物配置
当前配置指定baseDirectory: .output/public,可尝试修改为.output,同时确保产物包含全部必要文件:
version: 1 applications: - appRoot: frontend-new frontend: phases: preBuild: commands: - npm install build: commands: - npm run generate - # 可选:添加该行检查生成的文件结构,方便排查问题 - ls -la .output/public artifacts: baseDirectory: .output files: - '**/*' cache: paths: - node_modules/**/*
修改后重新构建,Amplify会读取.output下的静态文件,无需依赖deploy-manifest.json。
3. 手动生成deploy-manifest.json(临时 workaround)
若上述方法无效,可在build阶段末尾手动创建空的deploy-manifest.json放置到指定目录:
在build的commands中添加一行:
build: commands: - npm run generate - echo "{}" > .output/public/deploy-manifest.json
这样Amplify就能找到所需文件,完成部署流程。
4. 确认Nuxt配置正确性
检查nuxt.config.ts,确保静态生成配置无误:
export default defineNuxtConfig({ ssr: false, // 确保为纯静态模式 output: 'static', // 指定静态输出模式 })
本地构建后确认.output/public目录下有完整的静态文件(html、css、js等),再推送至Amplify。
内容的提问来源于stack exchange,提问作者Edin Puzic
相关产品推荐
相关产品推荐

