Gulp globbing и отрицание

У меня возникла проблема, из-за которой я не могу скомпилировать набор файлов LESS с помощью Globbing.

Моя структура такова:

+ dir3
  - dir3.1
    - dir3.1.1
    - dir3.1.2
  - dir3.2
  - dir3.3
  - responsive.less
  - fixedwidths.less

В каждом каталоге есть набор файлов меньшего размера, и я пытаюсь скомпилировать responsive.less и fixedwidths.less, но я хочу игнорировать все оставшиеся папки в dir3.

Мой Gulp Glob для компиляции меньшего количества файлов:

var paths = {
    root: 'Publication/',
    source: 'Publication/LESS/',
    styles: 'Publication/**/*.less'
}

// Compile less files
gulp.task('styles', function() {
    gulp.src([
            paths.source+'**/*.less', // compile it all
            '!'+paths.source+'**/variables.less', // ignore all variables.less
            paths.source+'responsive/*.less', // compile responsive & fixedwidths
            '!'+paths.source+'responsive/**/*.less' // ignore all less files in subdir of dir3
        ])
        .pipe(less())
        .pipe(gulp.dest(paths.root+'build'))
});

Я ожидал, что paths.source+'responsive/*.less' будет соответствовать responsive.less и fixedwidths.less, а '!'+paths.source+'responsive/**/*.less' будет игнорировать все остальное, но, похоже, это не то, что происходит. Последний битовый код, кажется, останавливает всю обработку dir3.

Может ли что-нибудь помочь?


person Qasim    schedule 16.04.2014    source источник


Ответы (1)


В node-glob есть ошибка, связанная с шаблонами инвертированных глобусов. См. эту проблему с Bower и эту проблема с node-glob. Может быть, ваша проблема связана с этим?

Если это так, этот обходной путь должен работать './!('+paths.source+'responsive/**/*.less)'.

person Brian Clozel    schedule 17.04.2014