使用node-glob,是否可以指定仅返回前X个匹配文件的模式,而不是所有匹配?
例如,如果我想要所有JavaScript文件,我的模式将是**/*.js
。但是,如果我只想要前5个JavaScript文件呢?
我意识到还有其他选项,例如我可以获取生成的文件集数组并对其进行切片。这里的基础案例很难,所以我试图直接从glob模式中完成这个。
答案 0 :(得分:5)
您可以像这样创建自己的Glob对象:
var i = 0;
var Glob = require("glob").Glob;
var mg = new Glob(pattern, options, cb);
mg.on("match", function(matched) {
console.log(matched);
i++;
if(i == 5) mg.abort();
});
它是一个事件发射器,因此您可以侦听在找到文件时将触发的match
事件。每次匹配都会增加计数器,如果已达到阈值,您可以致电mg.abort()
停止搜索。