在AWS Amplify中配置Next.js环境变量时遇到的异常问题
解决Amazon Amplify部署Next.js环境变量读取问题
你的问题核心在于amplify.yml的build阶段配置存在语法和逻辑错误,导致环境变量无法被构建进程正确读取,进而引发应用崩溃或变量失效。
问题拆解
- YAML缩进错误:build命令下的环境变量行缩进不一致,违反YAML语法规范,Amplify解析配置时会出错。
- 变量未导出:直接定义
EMAIL=${EMAIL}仅在当前shell生效,未用export导出的话,后续的npm run build进程无法继承这些变量。
修正后的amplify.yml配置
version: 1 frontend: phases: preBuild: commands: - npm ci build: commands: - export EMAIL=${EMAIL} - export EMAIL_PASS=${EMAIL_PASS} - export NEXT_PUBLIC_GOOGLE_ANALYTICS=${NEXT_PUBLIC_GOOGLE_ANALYTICS} - npm run build artifacts: baseDirectory: .next files: - '**/*' cache: paths: - node_modules/**/*
后续操作要点
- 控制台变量校验:在Amplify控制台的「应用设置」→「环境变量」中,确认已添加所有需要的变量(
EMAIL、EMAIL_PASS、NEXT_PUBLIC_GOOGLE_ANALYTICS),变量名严格区分大小写,值填写无误。 - Next.js变量规则:
NEXT_PUBLIC_前缀的变量会被打包到客户端代码,无前缀的仅在服务器端可用,不要混淆使用场景。 - 重新触发构建:修改配置后,手动触发Amplify重新构建部署,确保新配置生效。
内容的提问来源于stack exchange,提问作者Andrii Zaitsev
相关产品推荐
相关产品推荐

