IgnorePlugin

2023-06-02 15:04 更新

?IgnorePlugin? 阻止生成用于 ?import? 的模塊或 ?require? 匹配正則表達(dá)式或過濾函數(shù)的調(diào)用:

Using regular expressions

  • ?resourceRegExp?: 用于測試資源的 RegExp。
  • ?contextRegExp?: (可選)用于測試上下文(目錄)的 RegExp。
new webpack.IgnorePlugin({ resourceRegExp, contextRegExp });

Using filter functions

  • ?checkResource (resource, context)? 接收 resource 和 context作為參數(shù)的 Filter 函數(shù),必須返回布爾值。

new webpack.IgnorePlugin({
  checkResource(resource) {
    // do something with resource
    return true | false;
  },
});

Example of ignoring Moment Locales

從 2.18 開始,所有語言環(huán)境都與核心庫捆綁在一起(請參閱此 GitHub 問題)。

傳遞給 ?IgnorePlugin? 的 ?resourceRegExp? 參數(shù)沒有針對已解析的文件名或正在導(dǎo)入或需要的絕對模塊名稱進(jìn)行測試,而是針對在導(dǎo)入發(fā)生的源代碼中傳遞給 ?require? 或 ?import? 的字符串進(jìn)行測試。例如,如果您試圖排除 ?node_modules/moment/locale/*.js?,這將不起作用:

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

相反,因為 ?moment? 使用此代碼導(dǎo)入:

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

您的第一個正則表達(dá)式必須匹配那個 ?'./locale/'? 字符串。然后使用第二個 ?contextRegExp? 參數(shù)來選擇發(fā)生導(dǎo)入的特定目錄。以下將導(dǎo)致忽略這些語言環(huán)境文件:

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

這意味著“任何以 ?'moment'? 結(jié)尾的目錄中與 ?'./locale'? 匹配的 require 語句都將被忽略。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號