このセクションの内容は、以下のリンクの内容から派生したものであり、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 変数 (のサブセット) を公開できます。