反应与原住民世博会:如何使用.env.local配置文件?

问题描述 投票:2回答:1

我与博览会(世博27.1.1和应对本地0.55.4)一个反应 - 本机应用程序的运行。

我想用一个.env.local文件,我发现的唯一的事情是用巴贝尔 - 插件 - 直列dotenv,但它加载.ENV文件,而不是.env.local文件的内容(我希望它如果文件,否则.ENV存在加载的.env.local内容)。

是否有其他类似的插件,允许吗?

react-native environment-variables local expo
1个回答
3
投票

嗨,而不是你可以使用世博会“额外”的配置属性。在世博园下添加app.json比方说myApiKey是这样的:

{
  "expo": {
    "name": "login-app",
    "slug": "login-app",
    "privacy": "public",
    "sdkVersion": "32.0.0",
    "platforms": [
      "ios",
      "android"
    ],
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ],
    "ios": {
      "supportsTablet": true
    },
    "extra": {
      "myApiKey" : "1234"
    }
  }
}

你可以在你的应用程序的任何地方使用它没有导入任何文件。只是用它是这样的:

Expo.Constants.manifest.extra.myApiKey

0
投票

我终于找到了一个解决方案:

新增此文件env.js:

import Constants from "expo-constants";

function getEnvVars() {
  if (__DEV__) {
    return returnEnvVars();
  } else {
      return new Promise(resolve => {
          resolve(Constants.manifest.extra);
      });
  }
}

async function returnEnvVars() {
  return await import("envLocal.js");
}

export default getEnvVars;

然后,你可以把你的ENV变量在文件envLocal.js这样的:出口的默认{测试:“本地主机”};

app.json文件和你的督促变量,就像这样:

{
  "expo": {
    "extra": {
      "test": "prod"
   }
}

最后,你可以这样调用:

import getEnvVars from "../environment";
getEnvVars().then(vars => console.log(vars));
© www.soinside.com 2019 - 2024. All rights reserved.