多个模块上的 webpack IgnorePlugin()

Duj*_*ard 7 javascript webpack webpack-4

根据 webpack 4.x文档,我们可以使用 IgnorePlugin() 方法忽略插件,但以下示例仅忽略一个模块(moment/locales)

new webpack.IgnorePlugin({
  resourceRegExp: /^\.\/locale$/,
  contextRegExp: /moment$/
});
Run Code Online (Sandbox Code Playgroud)

如果我想忽略另一个模块(例如react-tooltip/dist/index.es.js:),是否有任何方法可以通过传递带有resourceRegExp或contextRegExp的数组来实现另一个要忽略的模块?

我尝试过:

new webpack.IgnorePlugin(/^\.\/index\.es\.js$/, /react-tooltip\/dist$/),
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
Run Code Online (Sandbox Code Playgroud)

但该文件似乎始终存在于捆绑包中

Bur*_*rns 1

您可以尝试在正则表达式中匹配多个模块

new webpack.IgnorePlugin({
  resourceRegExp: /^\.\/(locale|index\.es\.js)$/,
  contextRegExp: /(moment$|react-tooltip\/dist$)/
});
Run Code Online (Sandbox Code Playgroud)

这将与and内的localeand相匹配,这并不完全是所需的解决方案,但可能已经足够好了。index.es.jsmomentreact-tooltip/dist