[英]Removing gulp.src files after gulp.dest?
我有一個場景,我的客戶端想要將LESS文件放入src
目錄(通過FTP),並將它們作為CSS自動輸出到build
目錄。 對於每個LESS文件,一旦創建了它的結果CSS文件,就應該從src
目錄中刪除它。 我怎么能和Gulp一起做這件事?
我目前的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
目錄中的新LESS文件,並將CSS文件輸出到build
。 但它之后不會清理LESS文件。 :(
使用gulp-clean
。
管道傳輸后,它會清理你的src目錄。 當然,在具有不同設置的備份上測試它,如果您無法使其正常工作,請不要猶豫,在完成較少的任務后,再執行第二項任務並使用某些任務依賴項來運行清理。
如果我是對的,當我嘗試在gulp.dest
之后管道gulp.dest
gulp-clean
出現問題,所以我有另一種方法來做這個,這是一個有任務依賴的例子。
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());
});
那是為了不看的任務。 然后,您應該在* .less文件上使用watch
,但是您應該讓任務無remove-less
而不是less
。 為什么? 由於任務依賴性。
當您調用無remove-less
任務時,它只會在less
任務完成后啟動。 這樣,只有在較少的編譯結束時才會刪除文件,而不是在拋出錯誤的中間。
它可能不是完美的方法,因為我不是專家,但它是一個安全和有效的解決方案供您使用。 理解IMO也很清楚。
gulp-clean
已棄用。 使用npm模塊del
。
npm install --save-dev del
這是你應該如何使用它。
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']);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.