Как получить первые X-файлы с помощью glob-узла
Используя node-glob, возможно ли указать шаблон, который будет возвращать только первые X совпадающих файлов, а не все совпадения?
Например, если бы я хотел все файлы JavaScript, мой шаблон был бы **/*.js
, Но что, если бы я хотел только первые 5 файлов JavaScript?
Я понимаю, что есть и другие варианты, например, я могу взять результирующий массив наборов файлов и нарезать его. Основополагающий случай здесь делает это трудным, поэтому я пытаюсь сделать это непосредственно из шаблона глобуса.
1 ответ
Вы можете создать свой собственный объект 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()
чтобы остановить поиск.