Задача Gulp меньше компилируется в папку того же уровня, которая называется css

Я хочу иметь задачу gulp в коде Visual Studio, которая просматривает все файлы в папке с именем less с расширением .less. При обнаружении задача должна скомпилировать файлы less в папку с именем css на том же уровне, что и папка less.

Текущий код:

  
gulp.task('less', function() {
    gulp.src('less/*.less',{ cwd:'..' })
        .pipe(less())
        .pipe(gulp.dest( 'css' ), { cwd:'..' });
});

gulp.task('default', function() {
    gulp.watch('./**/less/*.less', ['less']);
}); 

Что я хочу:

  • x
    • y
    • less
      • style.less
    • css
      • style.css

Что делает приведенный выше код:

  • x
    • y
    • less
      • style.less
  • css
    • y
      • less
        • style.css

У меня это работало, когда я указывал путь, но проблема в том, что у меня меньше папок на нескольких уровнях. Как я могу это решить?


person user2425360    schedule 03.11.2015    source источник
comment
Это создает файл css в той же папке, что и меньше файлов. Я хочу, чтобы файлы css находились в папке с именем css на том же уровне, что и папка с именем less.   -  person user2425360    schedule 04.11.2015


Ответы (3)


Я знаю, что это немного старый вопрос, но решил поделиться своим ответом.

gulp.task('app:less', [], function () {
return gulp.src(['./src/**/*.less'], { base: './src/' })
    .pipe(less())
    .pipe(gulp.dest('./src/'));
});

Установка опции base для корневой папки с путем dest к ./src/ сработала для меня.

person Thaadikkaaran    schedule 29.08.2017

В настоящее время нет возможности сделать это. Единственное, что может приблизить вас к решению, это gulp-flatten. Однако для этого требуется указать фиксированное количество родителей для включения. В вашем случае, когда у вас есть папки на разных уровнях, вам нужно указать разные номера для каждого случая. Таким образом, единственным вариантом было бы изменить код выравнивания для поддержки чего-то вроде excludeParents, что, наоборот, выравнивает, то есть исключает фиксированное количество родителей (в вашем случае 1).

person JotaBe    schedule 04.11.2015

Попробуй это :

gulp.task('less', function() {
    gulp.src(['**/*.less', *.less],{ cwd:'less' })
        .pipe(less())
        .pipe(gulp.dest('css'));
});
person Arnaud Gueras    schedule 04.11.2015