使用 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 时出错

使用 Amplify 集成构建 AWS Amplify React 应用程序时总是缺少 aws-exports.js

React 图像在本地加载,但不在 AWS Amplify 上