簡體   English   中英

在gulp.dest之后刪除gulp.src文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM