2015-11-03 4 views
0

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

Текущий код:


 
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']); 
 
});

Что я хочу:

  • х
    • у
    • менее
      • style.less
    • CSS
      • style.css

Что выше код делает:

  • х
    • у
    • менее
      • style.less
  • CSS
    • у
      • менее
        • style.css

Я имел эту работу, когда специфичен в пути, но проблема в том, что я имею меньше папок на нескольких уровнях. Как я могу это решить?

+0

gulp.dest ('.')? – JotaBe

+0

Это создает файл css в той же папке, что и меньше файлов. Я хочу, чтобы файлы css находились в папке css на том же уровне, что и папка с наименьшими значениями. – user2425360

ответ

0

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

0

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

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

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

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

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