このセクションの内容は、以下のリンクの内容から派生したものであり、CC BY 4.0 ライセンスの対象となります。
特に明記されていない限り、以下の内容は元のコンテンツに基づいて修正および削除された結果であると想定できます。
EnvironmentPlugin は、DefinePlugin を process.env キーに対して使用するための簡略表記です。
string[] | Record<string, string>EnvironmentPlugin は、キーの配列、またはキーをデフォルト値にマッピングするオブジェクトのいずれかを受け入れます。
これは、以下の DefinePlugin の適用と同等です。
環境変数を指定しないと、「EnvironmentPlugin - ${key} 環境変数が未定義です」というエラーが発生します。
あるいは、EnvironmentPlugin は、キーをデフォルト値にマッピングするオブジェクトをサポートしています。 process.env でキーが未定義の場合、キーのデフォルト値が使用されます。
process.env から来る変数は常に文字列です。
DefinePlugin とは異なり、デフォルト値は EnvironmentPlugin によって JSON.stringify に適用されます。
デフォルト値の null と undefined は異なる動作をします。バンドル中に提供する必要がある変数には undefined を使用し、オプションの場合は null を使用します。
バンドル中に環境変数が見つからず、デフォルト値が提供されていない場合、Rspack は警告ではなくエラーをスローします。
テストファイル entry.js で上記の EnvironmentPlugin 設定を実行した結果を見てみましょう。
ターミナルで NODE_ENV=production Rspack を実行してビルドすると、entry.js は次のようになります。
DEBUG=false Rspack を実行すると、次のようになります。
次の EnvironmentPlugin 設定は、リポジトリの最後の Git コミットに対応する process.env.GIT_VERSION (例: "v5.4.0-2-g25139f57f") と process.env.GIT_AUTHOR_DATE (例: "2020-11-04T12:25:16+01:00") を提供します。
サードパーティの DotenvPlugin (dotenv-webpack) を使用すると、dotenv 変数 (のサブセット) を公開できます。