CC 4.0 ライセンス

このセクションの内容は、以下のリンクの内容から派生したものであり、CC BY 4.0 ライセンスに従います。

特に明記されていない限り、以下の内容は、元の内容に基づいて修正および削除された結果であると見なすことができます。

ContextReplacementPlugin

Context とは、require や動的な import() で、require('./locale/' + name + '.json') のような式を使用する場合を指します。このような式に遭遇すると、Rspack はディレクトリ ('./locale/') と正規表現 (/^.*\.json$/) を推測します。名前はコンパイル時には不明なため、Rspack はすべてのファイルをモジュールとしてバンドルに含めます。

ContextReplacementPlugin を使用すると、推測された情報を上書きできます。プラグインを構成する方法はいくつかあります。

オプション

  • タイプ
new rspack.ContextReplacementPlugin(
  resourceRegExp: RegExp,
  newContentResource?: string,
  newContentRecursive?: boolean,
  newContentRegExp?: RegExp
)

リソース(ディレクトリ)が resourceRegExp に一致する場合、プラグインはデフォルトのリソース、再帰フラグ、または生成された正規表現を、それぞれ newContentResourcenewContentRecursive、または newContextRegExp で置き換えます。newContentResource が相対パスの場合、前のリソースに対する相対パスとして解決されます。

基本的な使用例

new rspack.ContextReplacementPlugin(/moment[/\\]locale$/, /de|fr|hu/);

moment/locale コンテキストは、/de|fr|hu/ に一致するファイルに制限されています。したがって、これらのロケールのみが含まれます (詳細については、この問題を参照してください)。

その他のオプション

newContentResource パラメータと newContentCreateContextMap パラメータも使用できます。

new rspack.ContextReplacementPlugin(
  resourceRegExp: RegExp,
  newContentResource: string,
  newContentCreateContextMap: object // mapping runtime-request (userRequest) to compile-time-request (request)
);

これらの2つのパラメータを一緒に使用すると、より的を絞った方法でリクエストをリダイレクトできます。newContentCreateContextMap を使用すると、ランタイムリクエストをオブジェクト形式でコンパイルリクエストにマッピングできます。

new rspack.ContextReplacementPlugin(/selector/, './folder', {
  './request': './request',
  './other-request': './new-request',
});