gpt4 book ai didi

javascript - 多个模块上的 webpack IgnorePlugin()

转载 作者:行者123 更新时间:2023-12-04 17:23:05 26 4
gpt4 key购买 nike

跟随 webpack 4.x documentation ,我们可以用 IgnorePlugin() 方法忽略插件,但是下面的例子只忽略一个模块(moment/locales)

new webpack.IgnorePlugin({
resourceRegExp: /^\.\/locale$/,
contextRegExp: /moment$/
});
如果我想忽略另一个模块(例如: react-tooltip/dist/index.es.js),
有没有办法实现另一个模块来忽略,例如通过传递一个带有 resourceRegExp 或 contextRegExp 的数组?
我试过了:
new webpack.IgnorePlugin(/^\.\/index\.es\.js$/, /react-tooltip\/dist$/),
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
但文件似乎总是存在于包中

最佳答案

您可以使用 过滤功能 IgnorePlugin() 中的选项。
中你可以这样做Webpack 5:
https://webpack.js.org/plugins/ignore-plugin/#using-filter-functions

new webpack.IgnorePlugin({
checkResource(resource, context) {
const isLocaleFromMomentImport =
/^\.\/locale$/.test(resource) && /moment$/.test(context);
const isReactTooltipIndexFile = /^\.\/index\.es\.js$/.test(resource) && /react-tooltip\/dist$/.test(context);

return (
isLocaleFromMomentImport ||
isReactTooltipIndexFile
);
},
}),
关于 网络包 4 , IgnorePlugin() 还有一个 filter function选项,但有点不同(分别检查 resourcecontext)。如果您仍在使用该版本的 webpack,您应该稍微修改上面的代码以匹配您的情况......虽然,我可以看到这可能有点棘手,因为检查的分离......

关于javascript - 多个模块上的 webpack IgnorePlugin(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65004054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com