Webpack watchOptions.ignored – 排除某些目录被忽略

Mat*_*dor 5 javascript regex node.js webpack webpack-dev-server

对于webpack 的监视功能watchOptions.ignored允许我指定要忽略的任何匹配模式,如下所示:

module.exports = {
  //...
  watchOptions: {
    ignored: ['files/**/*.js', 'node_modules']
  }
};
Run Code Online (Sandbox Code Playgroud)

是否可以使用任何匹配或正则表达式模式来指定不忽略的子node_modules文件

在这种情况下,我需要忽略除以“”开头的所有子文件夹node_modules 之外的所有内容。node_modulesabc-

Raj*_*jan 2

我试图排除所有没有/src/. 我尝试对全局模式进行否定,但没有成功。

watchOptions.ignoreed

RegExp string [string]

该文档说它支持stringand [string]where string 可以是 glob 模式。

使用 glob 模式时,我们使用 glob-to-regexp 将它们转换为正则表达式

由于他们在内部使用glob-to-regexp,我认为负匹配不能按预期工作https://github.com/fitzgen/glob-to-regexp/issues/15


既然文档说我们RegExp也可以使用。我尝试了以下两个,都有效!

watchOptions: {
    ignored: new RegExp('.*^((?!(/src/)).)*$'),
},
Run Code Online (Sandbox Code Playgroud)

watchOptions: {
    ignored: '.*^((?!(/src/)).)*$',
},
Run Code Online (Sandbox Code Playgroud)

我不认为它支持数组RegExp (对于多种情况,我们可以使用正则表达式或)。

如果您使用正则表达式,您将能够实现这个问题中提到的情况。

参考: