代码之家  ›  专栏  ›  技术社区  ›  Josh M.

public index.html中的CRA变量替换

  •  0
  • Josh M.  · 技术社区  · 7 年前

    %PUBLIC_URL% ,但我也理解并注意到你不能 PUBLIC_URL 在开发(本地)运行期间替换它。我遇到了以下情况。

    我必须引用托管在特定于部署环境的服务器上的脚本资源。我需要从不同的主机获取此资源,这取决于这是一个开发运行还是已部署(例如QA):

    1. https://my-dev-server “(也就是说,当在本地运行时,应该从开发环境中提取脚本)
    2. 如果部署到DEV、QA或PROD,则脚本需要来自 %公共URL%

    如果我使用脚本标记,例如。。。

    <script src="%PUBLIC_URL%/a/b/c/my-script.js></script>
    

    %公共URL%

    如何替换自定义环境变量,例如“DEPLOY_HOST”,以及脚本标记,如。。。

    <script src="https://%DEPLOY_HOST%/a/b/c/my-script.js></script>
    

    0 回复  |  直到 7 年前
        1
  •  3
  •   Max Carroll    6 年前

    在根目录中创建两个.env文件

    // file name: .env.development
    REACT_APP_MY_API=https://dev.api
    
    // file name: .env.production
    REACT_APP_MY_API=https://production.api
    

    请注意 REACT_APP_ 否则就不行了。

    在index.html中,现在可以执行以下操作:

    <script>
      console.log('%REACT_APP_MY_API%'); // This will change based on development or production
    </script>
    

    或者你可以:

    <script src="%REACT_APP_MY_API%/a/b/c/my-script.js"></script>
    
    推荐文章