对于 webpack 的监视功能,
watchOptions.ignored
允许我指定要忽略的 anymatch 模式,如下所示:
module.exports = {
//...
watchOptions: {
ignored: ['files/**/*.js', 'node_modules']
}
};
是否可以使用anymatch或正则表达式模式来指定
node_modules
的子文件夹以not忽略?
在这种情况下,我需要忽略
node_modules
中的所有内容,除了node_modules
的所有以“abc-
”开头的子文件夹。
我试图排除所有没有
/src/
的文件夹。我尝试对全局模式进行否定,但没有成功。
watchOptions.ignored
RegExp
string
[string]
文档说它支持
string
和 [string]
,其中字符串可以是 glob 模式。
使用 glob 模式时,我们使用 glob-to-regexp 将它们转换为正则表达式
由于他们在内部使用 glob-to-regexp ,我认为负匹配无法按预期工作 https://github.com/fitzgen/glob-to-regexp/issues/15
因为文档说我们也可以使用
RegExp
。 我尝试了以下两个,都有效!
watchOptions: {
ignored: new RegExp('.*^((?!(/src/)).)*$'),
},
和
watchOptions: {
ignored: '.*^((?!(/src/)).)*$',
},
我认为它不支持具有
RegExp
的数组(对于多种情况,我们可以使用正则表达式或)。
如果你使用正则表达式,你将能够实现这个问题中提到的情况。
参考: