Как получить первые 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() чтобы остановить поиск.

Другие вопросы по тегам