Как обнаружить корневые файлы в LESS с помощью компиляции gulp

Вот в чем дело. У меня есть следующая структура моих файлов LESS:

/less/root.less
/less/includes1/*.less (a lot of less files)
/less/includes2/*.less (a lot of less files)

Я использую gulp для компиляции файлов LESS. Источник:

gulp.task('less', function () {
    var combined = combiner.obj([
    gulp.src('./less/**/*.less'),
    less(),
    gulp.dest('./www/dist/screen.css')
]);

// any errors in the above streams will get caught by this listener, instead of being thrown:
combined.on('error', console.error.bind(console));

return combined;
});

Проблема в указанном пути. Я понимаю этот путь ./less/**/*.less так: Рекурсивно пройтись по всем папкам и скомпилировать все файлы, которые заканчиваются на .less. Проблема в том, что компилятор хочет скомпилировать каждый файл один за другим и не знает, что все файлы включены в мой source.less. Он не ищет корневые файлы и не знает, какие файлы являются включенными частями, а какие корневыми файлами.

Как сообщить парсеру LESS, какие файлы являются корневыми, а какие нужно импортировать. В SASS это указывается с помощью подчеркивания в имени файла, например: _includedPart.scss.


person Macejkou    schedule 14.01.2015    source источник


Ответы (1)


Вы можете использовать https://github.com/robrich/gulp-ignore. См.: Как можно Я использую glob, чтобы игнорировать файлы, начинающиеся с подчеркивания?

  var condition = '_*.less'; //exclude condition
  gulp.src('content/**/*.less')
    .pipe(gulpIgnore.exclude(condition))

Во многих случаях весь ваш код Less помещается в один файл CSS. Ваши основные файлы содержат директиву @import, которая указывает на все остальные необходимые файлы Less.

person Bass Jobsen    schedule 14.01.2015
comment
Благодарю вас! Я, хотя это возможно сделать более естественным способом МЕНЬШЕ, но я думаю, что нет. - person Macejkou; 15.01.2015