Expo(expo27.1.1およびreact-native0.55.4)で実行されているreact-nativeアプリがあります。
.env.localファイルを使用したいのですが、babel-plugin-inline-dotenvを使用しているだけですが、.env.localファイルではなく.envファイルのコンテンツが読み込まれます(ファイルが存在する場合は.env.localのコンテンツをロードし、そうでない場合は.env)。
それを可能にする他の同様のプラグインはありますか?
私はついに解決策を見つけました:
これを使用してファイル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));