【问题标题】:How to deploy React app from Github to AWS S3 bucket with environment variables set Note: I didn't push .env files in github如何将 React 应用程序从 Github 部署到设置了环境变量的 AWS S3 存储桶注意:我没有在 github 中推送 .env 文件
【发布时间】:2020-04-24 07:25:53
【问题描述】:
嗨 React 专家(尤其是具有 CI/CD 知识的),
请仔细阅读并提供一些可能的方法。
背景:
- 我使用“create-react-app”创建了一个反应应用
- 命令 我为不同的环境创建了 3 个 .env 文件,例如 .env.development、.env.staging 和 .env.production。
- 出于安全原因,我们不应将这些 .env 文件推送到公共 Github 存储库
- 我已经对 .gitignore 文件采取了必要的步骤
现在我想将我的代码从 Github 直接部署到设置了这些环境变量的 AWS S3 存储桶。
如何做到这一点?
注意:我没有在 Github.b 中推送我的 .env 文件所以,我的 Github 存储库不包含那些 .env 文件。
【问题讨论】:
标签:
reactjs
github
amazon-s3
continuous-deployment
【解决方案1】:
根据here。我们无法在 S3 中设置环境变量。 S3 只是一个静态对象存储,而不是动态内容服务器。
根据react documentation,在执行npm run build 后,运行时中的所有环境变量都设置为最终构建(在构建文件夹内)。在构建 React 应用程序时,.env 文件中的所有秘密变量都在运行时环境中,并且在完成 npm run build 之后,这些环境变量(秘密变量)被添加到构建文件夹(最终应用程序)中。
由于 S3 不是运行时环境,我们需要构建一个 React 应用并在创建存储桶后将 build 文件夹上传到 S3 存储桶,或者我们可以使用 GitHub 操作提供该环境变量。