使用EAS构建Amplify React Native App时缺失amplifyconfiguration.json报错
解决EAS构建Amplify React Native应用时找不到amplifyconfiguration.json的问题
问题原因
本地运行时你已经通过amplify pull生成了amplifyconfiguration.json,但这个文件被加入.gitignore,所以EAS构建(不管本地还是云端)时,构建环境里没有这个文件,导致模块解析失败。
可选解决方案
方案1:在构建流程中拉取Amplify配置
这是最直接的方案,让构建过程自动获取配置文件:
- 云端构建:修改
eas.json,在build的pre-build阶段添加脚本执行amplify pull,同时在EAS Secrets中配置AWS凭证(AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY),确保构建环境有权限拉取配置。示例配置:
{ "build": { "production": { "preBuildCommand": "amplify pull --appId YOUR_APP_ID --envName YOUR_ENV --yes" } } }
- 本地构建:在执行
eas build前,手动运行amplify pull --appId YOUR_APP_ID --envName YOUR_ENV,确保amplifyconfiguration.json已生成在项目目录中。
方案2:通过环境变量注入配置
如果不想在构建时拉取Amplify环境,可以把配置内容存在EAS Secrets中,然后在构建阶段动态生成配置文件:
- 把
amplifyconfiguration.json的内容作为环境变量(比如命名为AMPLIFY_CONFIG)存入EAS Secrets - 在
eas.json的pre-build脚本中添加生成文件的命令:
{ "build": { "production": { "preBuildCommand": "echo $AMPLIFY_CONFIG > ./amplifyconfiguration.json" } } }
(Windows环境需调整脚本命令为对应写法)
方案3:临时调整.gitignore(不推荐)
如果是测试场景,可以临时把amplifyconfiguration.json从.gitignore中移除,提交到代码仓库,这样构建时就能包含这个文件。但这种做法会把环境配置暴露在代码仓库,生产环境绝对禁止使用。
总结
不是只能通过构建流程拉取Amplify环境,你可以根据项目的安全需求和构建流程复杂度选择合适的方案。生产环境优先推荐方案1或方案2,避免配置泄露。
内容的提问来源于stack exchange,提问作者Keval
相关产品推荐
相关产品推荐

