当前位置: 首页 > 知识库问答 >
问题:

在react native中设置环境变量?

穆单鹗
2023-03-14

我正在使用react-本地构建一个跨平台的应用程序,但我不知道如何设置环境变量,以便我可以为不同的环境拥有不同的常量。

例子:

development: 
  BASE_URL: '',
  API_KEY: '',
staging: 
  BASE_URL: '',
  API_KEY: '',
production:
  BASE_URL: '',
  API_KEY: '',

共有3个答案

郭永怡
2023-03-14

在我看来,最好的选择是使用react-nate-config。它支持12因子。

我发现这个包非常有用。您可以设置多个环境,例如开发、暂存、生产。

在Android的情况下,变量也可以在Java类,gradle,Androidanifest.xml等。在iOS的情况下,变量也可用于Obj-C类,我nfo.plist.

你只要创建文件就像

  • .env.development

你在这些文件中填入关键字,比如

API_URL=https://myapi.com
GOOGLE_MAPS_API_KEY=abcdefgh

然后使用它:

import Config from 'react-native-config'

Config.API_URL  // 'https://myapi.com'
Config.GOOGLE_MAPS_API_KEY  // 'abcdefgh'

如果你想使用不同的环境,你基本上是这样设置ENVFILE变量的:

ENVFILE=.env.staging react-native run-android

或组装应用程序生产(Android在我的情况下):

cd android && ENVFILE=.env.production ./gradlew assembleRelease
井翰
2023-03-14

我发现的最简单(不是最好或理想的)解决方案是使用react native dotenv。只需将“react native dotenv”预设添加到项目根目录下的.babelrc文件中,如下所示:

{
  "presets": ["react-native", "react-native-dotenv"]
}

创建一个. env文件并添加属性:

echo "SOMETHING=anything" > .env

然后在您的项目(JS)中:

js prettyprint-override">import { SOMETHING } from 'react-native-dotenv'
console.log(SOMETHING) // "anything"
长孙永思
2023-03-14

与其硬编码应用程序常量并切换环境(稍后我将解释如何切换),我建议使用十二要素建议,让构建过程定义BASE\u URLAPI\u键。

为了回答如何将您的环境暴露于react native,我建议使用Babel的Babel插件转换内联环境变量。

要使其正常工作,您需要下载插件,然后需要设置一个.babelrc,它应该如下所示:

{
  "presets": ["react-native"],
  "plugins": [
    "transform-inline-environment-variables"
  ]
}

因此,如果您通过运行API_KEY=my-app-id react-本地bundle(或start、run-ios或run-android)来转置react-本地代码,那么您所要做的就是让您的代码看起来像这样:

const apiKey = process.env['API_KEY'];

然后巴别塔将用以下内容取代:

const apiKey = 'my-app-id';

 类似资料:
  • 问题内容: 有没有一种方法可以在Linux中使用C设置环境变量? 我尝试了和,但是它们似乎并没有为我工作。 问题答案: 我将在这里做出一个疯狂的猜测,但是这些功能似乎不起作用的正常原因不是因为它们不起作用,而是因为用户并不真正了解环境变量的工作原理。例如,如果我有此程序: 然后我从外壳程序运行它,它不会修改外壳程序的环境- 子进程无法做到这一点。这就是为什么内置可修改环境的shell命令的原因,以

  • 我尝试为将在Windows子系统Linux中运行的Visual Studio Code任务设置环境变量。然而,它似乎不起作用。这是我的tasks.json: 输出为: 请注意,默认情况下,shell已被手动修改为WSL的,正如这里和这里推荐的那样。

  • 问题内容: 使用JetBrains的WebStorm官方Node插件(以及它们的其他IDE)运行Node.js应用程序时,是否可以设置环境变量? 问题答案: 不,从WebStorm不可能,应该在系统中定义环境变量。 更新:在新版本中,可以在“运行/调试”配置中设置环境变量。

  • 我使用spark-defaults分类[http://docs.aws.amazon.com/emr/latest/releaseGuide/emr-spark-configure.html]并提供以下属性:-来设置yarn主目录中的环境变量。

  • 我是使用Salesforce SDK开发本机应用程序的新手。我尝试使用ForceRoid工具从命令行创建android项目,但是在设置环境变量AndroidHome时遇到了问题。 但我不知道如何设置这个变量。 我附上截图来正确描述我的问题。

  • ENV 设置环境变量 格式有两种: ENV <key> <value> ENV <key1>=<value1> <key2>=<value2>... 这个指令很简单,就是设置环境变量而已,无论是后面的其它指令,如 RUN,还是运行时的应用,都可以直接使用这里定义的环境变量。 ENV VERSION=1.0 DEBUG=on \ NAME="Happy Feet" 这个例子中演示了如何换行,以