IgnorePlugin

IgnorePlugin は、正規表現またはフィルター関数に一致する `import` または `require` 呼び出しのモジュールの生成を防ぎます

正規表現の使用

  • `resourceRegExp`:リソースと照合する RegExp です。
  • `contextRegExp`:(オプション)コンテキスト(ディレクトリ)と照合する RegExp です。
new webpack.IgnorePlugin({ resourceRegExp, contextRegExp });

フィルター関数の使用

  • `checkResource (resource, context)` 引数として `resource` と `context` を受け取るフィルター関数で、ブール値を返します。
new webpack.IgnorePlugin({
  checkResource(resource) {
    // do something with resource
    return true | false;
  },
});

Moment ロケールの無視の例

moment 2.18 以降、すべてのロケールはコアライブラリと一緒にバンドルされています(この GitHub の issue を参照)。

`IgnorePlugin` に渡される `resourceRegExp` パラメータは、解決されたファイル名またはインポートまたは要求されている絶対モジュール名に対してテストされるのではなく、インポートが行われているソースコード内で `require` または `import` に渡される*文字列*に対してテストされます。たとえば、`node_modules/moment/locale/*.js` を除外しようとしても、これは機能しません

-new webpack.IgnorePlugin({ resourceRegExp: /moment\/locale\// });

むしろ、`moment` はこのコードでインポートされるため

require('./locale/' + name);

最初の正規表現は'./locale/'という文字列に一致する必要があります。2つ目のcontextRegExpパラメータは、インポート元の特定のディレクトリを選択するために使用されます。以下の設定では、これらのロケールファイルは無視されます。

new webpack.IgnorePlugin({
  resourceRegExp: /^\.\/locale$/,
  contextRegExp: /moment$/,
});

これは、「'moment'で終わるディレクトリからの'./locale'に一致するすべてのrequire文は無視される」ことを意味します。

7 貢献者

simon04byzykDullReferenceExceptionEugeneHlushkoFadySamirSadekiamakulovchenxsan