2016-07-28 11 views
9

私のプロジェクトには、設定する環境変数に依存するノード依存関係があり、コードはconst KEY = process.env.SOME_KEYという単純なものです。 私はreact-nativeが従来の環境変数をサポートしていないことを理解しています。反応ネイティブのカスタム依存関係の環境変数

このニーズを満たし、このコードを機能させるためのオプションは何ですか?依存関係のコードを制御できないと仮定します。

+0

これを試しましたか? [react-native-config](https://www.npmjs.com/package/react-native-config) – LuisPinto

+0

@LuisPintoコードを管理しても問題ありません。 – enapupe

答えて

1

解決策はここでは簡単ですが、あなたのコード内のすべてのprocess.env.コールを実際のenv値で置換するカスタムバーベルトランスフォーマーに移行する必要があります(その段階で環境変数にアクセスできます)。トランスフォームはアプリケーションの依存関係にも適用されます。つまり、実際に変更しないでサードパーティのコードに必要な変更を加えることができます。

それを行うためには、まず以下のような.babelrcファイルを作成する必要がありますし、プロジェクトのルートに置き:

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

をそのに行うのならば、行くとNPM babel-preset-react-nativebabel-plugin-transform-inline-environment-variablesをインストールします。

最後に、react-native start(基本的にパッケージャを再起動します)を再実行すると、すべてのprocess.env呼び出しが置き換えられます。

+0

ありがとうございます。私は同じ答えをhttp://stackoverflow.com/a/37823398/1666071で見つけました。 RNがNODE_ENVを設定する方法のためにもう少し詳しいことを説明し、回避策について説明することができたら、私はあなたに答えてもらいたいと思っています。 – enapupe

+1

上記の問題とそれに関連するPRがマスターにマージされており、ここで説明した手順以外の手順を実行する必要はありませんでした。 –

+0

私の個人的なアドバイスは、あなたが維持可能なアプリを楽しむならば、Babelを避けることです。 –

関連する問題