使用 AWS Amplify 将 React Native 应用程序发布到云
Posted
技术标签:
【中文标题】使用 AWS Amplify 将 React Native 应用程序发布到云【英文标题】:Publish a React Native App to cloud using AWS Amplify 【发布时间】:2021-05-05 14:56:52 【问题描述】:我想编写一个调用 Lambda API 的反应原生前端应用程序,并且我正在尝试使用 AWS Amplify 发布到云。为了确保我执行了正确的步骤,我遵循了 Amplify 文档 (https://docs.amplify.aws/start/getting-started/data-model/q/integration/react-native#create-a-graphql-api-and-database),但是当我尝试运行“amplify publish”时,它返回一个错误,例如“Publish started for amplifyhosting npm ERR!缺少脚本:构建” .
package.json
"main": "node_modules/expo/AppEntry.js",
"scripts":
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
,
"dependencies":
"@react-native-community/netinfo": "^5.9.10",
"aws-amplify": "^3.3.15",
"aws-amplify-react-native": "^4.3.1",
"expo": "~40.0.0",
"expo-status-bar": "~1.0.3",
"react": "16.13.1",
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
"react-native-web": "~0.13.12"
,
"devDependencies":
"@babel/core": "~7.9.0"
,
"private": true
我注意到我缺少构建脚本,但据我所见,其他人也没有,但它仍然适用于他们。如果我添加它,我也不知道它应该是什么样子。
第二种方法是通过 AWS Amplify 控制台,我在其中使用默认设置从 GitLab 添加了应用程序,但它在 Cloud Formation 的构建步骤中返回并出错。 “嵌入式堆栈 arn:aws:cloudformation:-eu-central-1:stackaname 未成功创建:以下资源未能创建:[AmplifyBranch]。”
谢谢。
【问题讨论】:
能否请添加 package.json 脚本对象,可能是您缺少构建脚本? @BaluVyamajala 我已经用 package.json 进行了编辑 你有没有得到这个答案?我有这个确切的问题。已经玩了好几天了 不,我还没有 【参考方案1】:我遇到了完全相同的问题。
你可以在 package.json 中添加 "build": "expo build:web",这样就可以解决问题了。
package.json 应该是这样的:
"scripts":
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject",
"build": "expo build:web"
,
【讨论】:
以上是关于使用 AWS Amplify 将 React Native 应用程序发布到云的主要内容,如果未能解决你的问题,请参考以下文章
如何将 React 本机导航与 Android 中的 AWS Amplify 推送通知集成?
aws-amplify-react 和 @aws-amplify/ui-react 有啥区别?
在 React 中使用 AWS Amplify Appsync 上传图像
在 React 中使用 aws-amplify 将文件上传到具有联合身份的 S3 时出错