[英]javascript regex to ignore sub directories for chokidar
目前使用Chokidar在文件结构上进行文件监视。 我需要观察特定目录,但忽略在该目录中创建的任何子目录。
例如,
/var/app/current/somedir
我会看一些在某个 目录中创建的文件 。 但是如果在somedir中创建了一个目录 ,那么我想以递归方式忽略它,因此也忽略了在它下创建的任何其他内容。
chokidar.watch(configuration.theDir, {
ignored: `/\\var\\app\\current\\somedir\\<match anything here, except other directories!>\\<anything here would be ignored and further down...>/`,
awaitWriteFinish: {
stabilityThreshold: 2000,
pollInterval: 100
}
}).on('add', (file, details) => {
// console.log(file, path);
});
我想弄清楚如何正确实现正则表达式来实现这一目标。 不幸的是,创建的目录是随机的,并且事先不知道名称。 这甚至可能吗?
此正则表达式将匹配目录中的所有内容或属于基类的子目录 (由以下斜杠/
定义的目录)。
对于您的示例,基数为: /var/app/current/somedir
正则表达式:/ /^\\/var\\/app\\/current\\/somedir\\/.*[\\/].*$/i
测试:
var tests = [
'/var/app/current/somedir/fileOrFolder.txt',
'/var/app/current/somedir/fileOrFolder/',
'/var/app/current/somedir/fileOrFolder/ssads/sad.s',
'/var/app/current/somedir/fileOrFolder.sd/sdasda.asda/',
'/var/app/current/somedir/fileOrFolder.txt',
'/var/app/current/somedir/fileOrFolder'
]
for (var ii = 0, nn = tests.length; ii < nn; ii++)
{
if (/^\/var\/app\/current\/somedir\/.*[\/].*$/i.test(tests[ii]))
{
console.log('"'+tests[ii]+'"', 'Matched, so ignored.');
}
else
{
console.log('"'+tests[ii]+'"', 'Not matched, so watch.');
}
}
在JavaScript控制台中打印以下内容:
/*
* "/var/app/current/somedir/fileOrFolder.txt" Not matched, so watch.
* "/var/app/current/somedir/fileOrFolder/" Matched, so ignored.
* "/var/app/current/somedir/fileOrFolder/ssads/sad.s" Matched, so ignored.
* "/var/app/current/somedir/fileOrFolder.sd/sdasda.asda/" Matched, so ignored.
* "/var/app/current/somedir/fileOrFolder.txt" Not matched, so watch.
* "/var/app/current/somedir/fileOrFolder" Not matched, so watch.
*/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.