このセクションの内容は、以下のリンクの内容から派生したものであり、CC BY 4.0 ライセンスの対象となります。
特に明記されていない限り、以下の内容は元のコンテンツに基づいて修正および削除された結果であると想定できます。
DefinePlugin
は、コンパイル時にコード内の変数を他の値または式に置き換えます。これは、開発ビルドと本番ビルドで異なる動作をさせる場合に便利です。開発ビルドではロギングを実行し、本番ビルドでは実行しない場合、グローバル定数を使用してロギングを実行するかどうかを決定できます。DefinePlugin
は、開発ビルドと本番ビルドのルールを設定し、それを忘れることができるようにします。
DefinePlugin
に渡される各キーは、識別子、または `.` で結合された複数の識別子です。
値はコードにインライン化され、minify処理によって冗長な条件が削除されます。
process
の値を定義する場合は、process: { env: { NODE_ENV: JSON.stringify('production') } }
よりも 'process.env.NODE_ENV': JSON.stringify('production')
を使用することをお勧めします。後者を使用すると、`process` オブジェクトが上書きされ、`process` オブジェクトに他の値が定義されていることを期待する一部のモジュールとの互換性が損なわれる可能性があります。
プラグインは直接テキスト置換を行うため、プラグインに与えられる値には、文字列自体の中に実際の引用符を含める必要があることに注意してください。通常、これは `'"production"'` などの代替引用符を使用するか、`JSON.stringify('production')` を使用して行われます。
Rspack をminifyなしで実行すると、次のようになります。
minify処理後、次のようになります。
機能フラグを使用して、本番/開発ビルドの機能を有効/無効にします。
本番/開発ビルドで異なるサービスURLを使用します