Я не вижу никакой документации, предполагающей, что совпавший шаблон глобуса записан рядом с файлом. Если вы передадите массив в gulp.src
, вы можете попытаться сопоставить путь текущего файла с массивом, используя библиотеку micromatch
. Это потребует, чтобы передаваемые шаблоны glob были уникальными в том смысле, что конкретному файлу может соответствовать не более одного шаблона.
Пример для этого:
const gulp = require('gulp'),
tap = require('gulp-tap'),
mm = require('micromatch');
function example() {
const srcGlobPatternsArray = ['src/js/**/*.js', 'src/css/**/*.css'];
return gulp.src(srcGlobPatternsArray).pipe(
tap((file) => {
const globIndex = srcGlobPatternsArray.findIndex((element) => {
return mm.isMatch(
file.history[0].substring(file.cwd.length + 1),
element
);
});
if (globIndex !== -1) {
console.log(
'Glob pattern matched: ' +
srcGlobPatternsArray[globIndex] +
' at index ' +
globIndex
);
} else {
console.log('Could not match glob');
}
})
);
}
exports.default = example;