无法访问将其从 GH-pages 传递到 React App 的环境秘密变量

2024-06-23

我正在尝试在 Github-pages 部署的 ReactApp 中使用环境变量。

该变量是通过添加进程.env并开始于REACT_APP按照文档规定

export default class WeatherService {
  constructor() {
    this.API_WEATHER_URL = process.env.REACT_APP_DEV_SERVER_URL + 'api/weather';
  }

and .env创建于GitHub 操作 yml

jobs:
  front-build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v1

      - name: Store variables
        run: |
          cd front-app
          touch .env
          REACT_APP_DEV_SERVER_URL=${{ secrets.DEV_SERVER_URL }} >> .env

      - name: Build
        run: |
          cd front-app
          npm install
          npm run-script build
      - name: Deploy
          ...

但应用程序从 GitHub Secrets 获取了错误的值。

看到 GH-pages 上的反应应用程序收到错误的对象,而不是我传递的对象(“username.cloudTech.com/api”):

this.API_BLOB_URL = Object({
                NODE_ENV: "production",
                PUBLIC_URL: "/azure-flask-react",
                WDS_SOCKET_HOST: void 0,
                WDS_SOCKET_PATH: void 0,
                WDS_SOCKET_PORT: void 0,
                FAST_REFRESH: !0
            }).REACT_APP_DEV_SERVER_URL + "api/blob/"

同时,当我在本地构建时npm 运行构建。 React 成功替换了 env。变量

用于的目的是使用不同的环境设置作为 api dev server 中

  • 开发(127.0.0.1:5000) and
  • 生产(用户名.cloudTech.com/api).

我已经尝试过使用env-cmd and dotenvlib但它不起作用


UPDATE:

如果我通过了REACT_APP_ENV='用户名.cloudTech.com/api'npm 脚本 - 它成功传递了这个变量:

"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "build:staging": "REACT_APP_FRONT_APP_URL=nikonov91-dev.github.io/azure-flask-react/ npm run build"
    ...
}

然后瞧。


更新@OldPro 的答案。 我引用了我的台词:

run: |
  cd front-app
  touch .env
  echo 'REACT_APP_DEV_SERVER_URL=${{ secrets.DEV_SERVER_URL }}' >> .env

but the value is still empty in JS ch: enter image description here


我也尝试过@peterevans的答案

        run: |
          cd front-app
          echo "DEV_SERVER_URL=${{ secrets.DEV_SERVER_URL }}" >> $GITHUB_ENV
          touch .env
          echo "REACT_APP_DEV_SERVER_URL=${{ env.DEV_SERVER_URL }}" >> .env

不幸的是变量是相同的


UPDATE

我确信我的方法是有效的,因为如果我将变量硬编码在YML它按预期工作,并且可以在我的 Appv 中轻松访问

 - name: Store variables
        run: |
          cd front-app
          touch .env
          echo "REACT_APP_DEV_SERVER_URL='https://first-py-app.azurewebsites.net/'" >> .env

and this.API_BLOB_URL = process.env.REACT_APP_DEV_SERVER_URL + 'api/blob/';变成this.API_BLOB_URL = "https://first-py-app.azurewebsites.net/api/blob/"


但我仍在寻找解决方案如何传递变量GH-秘密


我发现有两种方法:

  • 存储库秘密可以设置Settings->Secrets->新存储库秘密

  • 环境秘密可能会被创建Settings->环境->新环境->添加秘密

    并添加到工作描述的下一个参数:环境:您想要的环境就像我的代码中一样

环境秘密需要额外的参数job描述:

jobs:
  trying-to-use-environment-secrets:
    runs-on: ubuntu-latest
    environment: test-env #<---The only difference we need to specify what environment to use for environment secrets
    steps:
      - name: Checkout
        uses: actions/checkout@v1

      - name: Store variables
        run: |
          echo ${{ secrets.DEV_SERVER_URL_FROM_ENVIRONMENT_SECRETS }}
          echo "DEV_SERVER_URL=${{ secrets.DEV_SERVER_URL_FROM_REPOSITORY_SECRETS }}"

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法访问将其从 GH-pages 传递到 React App 的环境秘密变量 的相关文章

随机推荐

  • 滚动时大型 UICollectionViewCell 停止显示

    相同的行为UICollectionView正如这里所描述的 已经导致这个问题 https stackoverflow com questions 13016302 large cells in a uicollectionview gett
  • 错误运算符 new[] :函数不接受 1 个参数

    我有重载运算符的代码new 下面的代码在 Linux gcc4x 下运行良好 但在 Windows Visual C 2008 Express Edition 下运行不佳 Visual Studio 2008 Express Edition
  • 通过浏览器以编程方式确定 DPI?

    我想以编程方式确定用户显示器的 DPI 以便以精确的单位数 厘米 英寸 显示网页 我知道这是一个奇怪的请求 这是一个可视化研究项目 它是一种控制 目前 我们通过让用户将信用卡放置在屏幕上并将可调整大小的 div 通过 Mootools 与真
  • 如何从顶点图表中删除图例、标签和所有数字

    我已经尽力了 如果有人能帮助我 那就太好了 我希望图表上的数字和图例消失 图例和数据标签可以通过以下方式禁用 const options dataLabels enabled false legend show false EDIT 如果您
  • 将斯坦福情感分析与java集成时出现错误

    我正在使用斯坦福情感 nlp 库和 java 进行情感分析 但是当我执行代码时 我收到错误 无法弄清楚 我的代码如下 package com nlp import java util Properties import edu stanfo
  • Chrome Sockets API 在 Chrome 操作系统(与 Ubuntu、Windows)上的行为有何不同?

    我有一个示例 Chrome 打包应用程序 它使用 Chrome 套接字 API 来执行 DNS 服务发现 繁重的工作是从这里的例子中借来的 https github com GoogleChrome chrome app samples t
  • 如何获取今天或昨天的时间 17:00:00?

    如果今天的 17 00 00 已经过去 那么它应该是今天的日期 否则 昨天的日期 今天的时间我得到了 test datetime datetime now replace hour 17 minute 0 second 0 microsec
  • 如何使用 PyQt4 禁用窗口最大化图标?

    我想知道如何禁用pyqt4中的窗口最大化按钮 我目前使用 QWidget setFixedSize self QSize 来防止用户窗口调整大小 但是最大化按钮仍然处于启用状态 按下时会导致应用程序移动到屏幕的左上角 我基本上想复制 Win
  • 如何避免以明文形式存储 tomcat 的 server.xml 数据源资源定义的密码?

    tomcat中的资源定义server xml看起来像这样
  • Swift 3 IF 条件中的可选链接错误?

    这段代码在 Swift 2 3 中运行得很好 我不明白为什么我必须解开TestClass检查数字是否大于 4 这是链接选项的全部要点 以节省额外的调用 现在为了使这项工作正常进行 我必须检查是否testClass nil 或使用隐式解包if
  • Android远程数据库

    我正在开发一个需要连接到中央数据库的 Android 应用程序 用户应该能够通过应用程序访问记录并将记录添加到数据库中 数据本身相当简单 每条记录都由许多文本字段组成 该数据库将专门为应用程序开发 并且只需要通过应用程序进行访问 初步阅读似
  • 带有 kableExtra 的表格标题

    我想包含表的标题和列的正确名称 我该如何使用 kableExtra 函数来做到这一点 kable tab 211 220 gt kable styling bootstrap options c striped hover enter im
  • 通过多个换行符分割文件

    假设您有以下输入文件 Some text It may contain line breaks Some other part of the text Yet an other part of the text 并且您想要迭代每个文本部分
  • ASP.NET MVC5:想要使用模型绑定更新集合中的多个项目

    所以我有一个用户对象的集合 它应该是可批量编辑的 同时编辑许多用户 我使用实体框架将用户输入保存到数据库中 控制器方法从表单获取的集合为 null 为什么 另外 BindAttribute 是否可以像我的代码中那样与集合一起使用 View
  • Objective-C 右填充

    大家好 希望有人可以提供帮助 我正在浏览网络 但似乎没有什么真正有意义的 S 所以我有一个字符串可以说 123 我想使用如下函数 padr 123 5 x 结果应该是 123xx 抱歉 Objective C 在处理字符串时是一场噩梦 S
  • 发布Windows窗体应用程序如何更改安装路径

    我已经构建了一个 Windows 窗体应用程序 并发布了客户端安装 安装安装文件时 应要求用户选择安装目录路径 相反 它安装在默认路径中 如下所示 C Users Mysys t AppData Local Apps 2 0 434YBBV
  • 上三角中的所有零值

    我有以下代码 afs in sound lt stringdistmatrix soundexcode termen soundexcode termen method hamming 我的矩阵如下所示 0 1 inf inf 1 0 0
  • cast_sender.js 错误:无法在 Chrome 中加载资源:net::ERR_FAILED

    我最近开始收到以下控制台错误 但没有发生任何代码更改 我最近没有安装任何扩展 Failed to load resource net ERR FAILED chrome extension enhhojjnijigcajfphajepfem
  • 在oracle 10g Express版中创建Schema

    我已经安装了oracle 10g Express Edition 但没有找到选项 创建架构 Oracle 10g Express 版本中是否有创建模式的选项 否则我必须安装其他oracle 10g 创建 Oracle 10g 架构 我必须安
  • 无法访问将其从 GH-pages 传递到 React App 的环境秘密变量

    我正在尝试在 Github pages 部署的 ReactApp 中使用环境变量 该变量是通过添加进程 env并开始于REACT APP按照文档规定 export default class WeatherService construct