web-dev-qa-db-ja.com

React Expoでネイティブ:.env.local構成ファイルの使用方法は?

Expo(expo27.1.1およびreact-native0.55.4)で実行されているreact-nativeアプリがあります。

.env.localファイルを使用したいのですが、babel-plugin-inline-dotenvを使用しているだけですが、.env.localファイルではなく.envファイルのコンテンツが読み込まれます(ファイルが存在する場合は.env.localのコンテンツをロードし、そうでない場合は.env)。

それを可能にする他の同様のプラグインはありますか?

5
Simon

私はついに解決策を見つけました:

これを使用してファイル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;

次に、次のように環境変数をファイルenvLocal.jsに配置できます。exportdefault{test: "localhost"};

app.jsonファイル内のprod変数は次のようになります。

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

最後に、次のように呼び出すことができます。

import getEnvVars from "../environment";
getEnvVars().then(vars => console.log(vars));
1
Simon