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