2016-06-20 7 views
0

私は、開発、ステージング、またはプロダクションにあるアプリケーションに基づいて、異なるapiエンドポイントを設定する方法を見つけようとしています。生産、開発、リリースに別々の変数値を設定する

私が見た多くの開発者が何かラインprocess.env.NODE_ENVを使用するが、私はそれを試してみましたが、私は

プロパティENVは

は私のコンポーネントとアクション内でこれを試し定義されていないというエラーを取得し、ありません運。私はこれがなぜいくつかの場所で使用できる理由は完全に理解できませんが、他の場所では使用できません。問題の代替ソリューションがあるかどうかを知りたいですか?

+0

1つの方法は、ブランチごとに別の設定ファイルを設定することです(gitを使用する場合)。 もう1つの方法は、環境変数を渡し、if(env == 'production')end_points = require( '。prod_api')などの変数に基づいてリクエストを行うことです。 – bpinhosilva

答えて

1

環境変数はに非常に便利です機密設定オプションを指定するか、ライブラリの未使用コードを削除することさえできます。 React)

最初に環境変数を指定する必要があります。

あなたは、Mac OSやLinuxを使用している場合、あなたは単にあなたがprocess.env.FOOを定義してもprocess.env変数を作成した方法

FOO=bar npm run start 

を実行することができます。

環境変数をさらに広範囲に使用する場合は、better npm rumのメリットがあります。 package.jsonでは、あなたのような環境変数のクロスプラットフォームを定義することができます。

"start-prod": { 
    "command": "node ./bin/server.js", 
    "env": { 
    "NODE_PATH": "./src", 
    "NODE_ENV": "production", 
    "PORT": 8080 
    } 
}, 
"start-dev": { 
    "command": "node ./bin/server.js", 
    "env": { 
    "NODE_PATH": "./src", 
    "NODE_ENV": "development", 
    "PORT": 3000 
    } 
}, 

あなたの好みに合わせてこれを使用することができますが、私は確かに生産ビルドのための真にNODE_ENVを設定することをお勧めします。ノードモジュールはその変数を認識し、開発コードを取り除きます。この簡単なステップの結果、プロダクションビルドは小さくなります。

  • (例えばWebPACKのでDLLのビルドを有効にする)などReduxのデベロッパーツールなどの開発ツール
  • 特定のビルド設定の可用性を定義するAPIキーを定義

    • 他の用途には、に、環境変数を使用することを含むことができます

    幸運を祈る!

  • 1
    • の端末で最初に適切には、端末

    • $printenv NODE_ENVを設定するかどうかを確認するには$export NODE_ENV=dev

    • を設定し、ノードに、あなたはそう$console.log(process.env.NODE_ENV)

    • のようにアクセスすることができますw環境変数を直接端子を介して設定されたとき、彼らは一掃:henever私のアプリは、私がこの

      $ NODE_ENV = DEV SQL_IP = 127.0.0.1ノードserver.js

    • 好きです起動時に環境変数を望んでいますターミナルを閉じるには、ので、あなたのマシンに.bashrcファイルでこれらの変数を設定してください永久

    関連する問題