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 2.18 开始,所有地区设置都与核心库捆绑在一起(请参阅 此 GitHub 问题)。
传递给 IgnorePlugin
的 resourceRegExp
参数不会针对已解析的文件名或要导入或必需的绝对模块名称进行测试,而是针对 导入发生处的源代码中 传递给 require
或 import
的字符串进行测试。例如,如果你尝试排除 node_modules/moment/locale/*.js
,这将不起作用
-new webpack.IgnorePlugin({ resourceRegExp: /moment\/locale\// });
相反,因为 moment
使用此代码进行导入
require('./locale/' + name);
...你的第一个 regexp 必须匹配 './locale/'
字符串。然后使用第二个 contextRegExp
参数从进行导入的特定目录中进行选择。以下内容将导致忽略这些地区设置文件
new webpack.IgnorePlugin({
resourceRegExp: /^\.\/locale$/,
contextRegExp: /moment$/,
});
...这意味着“任何与 './locale'
匹配的 require 语句,来自以 'moment'
结尾的任何目录,都将被忽略”。