繁体   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