Redux からの警告の背後にある問題に対処しようとして、React または Redux を使用して本番環境での使用に最適化されたビルドを生成するために envifying が必要なステップであることを説明するアドバイスに出くわしました。Envifyingは、 などのノード固有の環境変数を などprocess.env.NODE_ENV
の実際の値に置き換えるプロセスとして説明されています'production'
。
Envifying が必要であり、上記の説明が正しいことを受け入れると、React や Redux などのクライアント側ライブラリにノード固有の環境変数が含まれていると想定されているように見えるため、混乱します。ええ、特にこれらのライブラリは、Isomorphic/Universal JavaScript アプリケーションの構築に人気があることは知っていますが、驚くべきことです。私はこれを正しく理解していますか?process.env.NODE_ENV
もしそうなら、ノードの外でどこで使用されているかを知る必要があるパターンの説明はありますか?
アドバイスを正しく理解していれば、Webpack を使用している場合は、そのDefinePlugin
ようなプラグインを使用することをお勧めします。
new webpack.DefinePlugin({
"process.env.NODE_ENV": process.env.NODE_ENV,
}),
これには、NODE_ENV 変数を、クライアント側コード用に生成するビルドのターゲット環境に設定する必要があるようにも見えます。ビルド サーバーに環境変数を設定して、デプロイ先のサーバーで実際のコードが実行される環境を反映しているため、これは二重に奇妙です。
これはすべて、一般的なパターンに関して何かが欠けているように感じさせます。
関連情報: