我正在使用react-本地构建一个跨平台的应用程序,但我不知道如何设置环境变量,以便我可以为不同的环境拥有不同的常量。
例子:
development:
BASE_URL: '',
API_KEY: '',
staging:
BASE_URL: '',
API_KEY: '',
production:
BASE_URL: '',
API_KEY: '',
在我看来,最好的选择是使用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
我发现的最简单(不是最好或理想的)解决方案是使用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"
与其硬编码应用程序常量并切换环境(稍后我将解释如何切换),我建议使用十二要素建议,让构建过程定义BASE\u URL
和API\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" 这个例子中演示了如何换行,以