2014-05-30 3 views
4

У меня есть сценарий, когда мой клиент хочет сбросить файлы LESS в каталог src (через FTP), и для них автоматически выводится как CSS в каталог build. Для каждого файла LESS после создания его созданного файла CSS его следует удалить из каталога src. Как я могу это сделать с помощью Gulp?Удаление файлов gulp.src после gulp.dest?

Мой текущий gulpfile.js является:

var gulp = require("gulp"); 
var watch = require("gulp-watch"); 
var less = require("gulp-less"); 

watch({ glob: "./src/**/*.less" }) 
    .pipe(less()) 
    .pipe(gulp.dest("./build")); 

Это успешно обнаруживает новые МЕНЬШЕ файлы при падении в src каталогов и выдает файлы CSS в build. Но после этого он не очищает файлы LESS. :(

ответ

2

Использование gulp-clean.

Он очистит ваш каталог Src, как только вы конвейеру его. Конечно, проверить его на подпорки с различными настройками, и если вы не можете управлять, чтобы заставить его работать правильно, дон «т стесняйтесь сделать вторую задачу и использовать некоторые задачи зависимость для запуска чистой после вашей менее задача выполнена.


Если я прав, когда я попытался трубы gulp-clean после gulp.dest, что-то пошло не так , поэтому я получил еще один способ сделать это, вот пример с зависимостями задачи.

var gulp = require('gulp'), 
    less = require('gulp-less'), 
    clean = require('gulp-clean'); 

gulp.task('compile-less-cfg', function() { 
    return gulp.src('your/less/directory/*.less') 
       .pipe(less()) 
       .pipe('your/build/directory')); 
}); 

gulp.task('remove-less', ['less'], function(){ 
    return gulp.src('your/less/directory) 
       .pipe(clean()); 
}); 

Это для задачи не смотреть. Затем вы должны использовать watch в файлах * .less, но вы должны получить задание remove-less вместо less. Зачем ? Из-за зависимости задачи.

Когда вы вызовете задачу remove-less, она начнется только после завершения задачи less. Таким образом, файлы будут удаляться только после того, как ваша меньшая компиляция закончится, а не посредине ее появления ошибок.

Возможно, это не идеальный способ получить эту работу, поскольку я не эксперт, но это безопасное и эффективное решение для вас. Также довольно понятно понять ИМО.

+3

gulp-clean's Устаревшие. –

2

gulp-clean устарел. Используйте модуль npm del.

npm install --save-dev del 

Here, как вы должны его использовать.

var gulp = require('gulp'); 
var del = require('del'); 

gulp.task('clean:mobile', function() { 
    return del([ 
    'dist/report.csv', 
    // here we use a globbing pattern to match everything inside the `mobile` folder 
    'dist/mobile/**/*', 
    // we don't want to clean this file though so we negate the pattern 
    '!dist/mobile/deploy.json' 
    ]); 
}); 

gulp.task('default', ['clean:mobile']);