gpt4 book ai didi

javascript - 在 gulp.dest 之后删除 gulp.src 文件?

转载 作者:搜寻专家 更新时间:2023-10-31 23:13:12 24 4
gpt4 key购买 nike

我有一个场景,我的一个客户想要将 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"));

这成功检测到新的 LESS 文件被放入 src 目录并将 CSS 文件输出到 build。但它不会在之后清理 LESS 文件。 :(

最佳答案

使用gulp-clean

它会在您通过管道传输后清理您的 src 目录。当然,在不同设置的备份上测试它,如果你不能让它正常工作,不要犹豫,做第二个任务,并在你的 less 任务完成后使用一些任务依赖来运行清理。


如果我是对的,当我尝试在 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 任务完成后启动。这样,文件只会在 less 编译结束后被删除,而不会在编译过程中抛出错误。

由于我不是专家,这可能不是实现此功能的完美方法,但它是供您使用的安全有效的解决方案。理解 IMO 也很清楚。

关于javascript - 在 gulp.dest 之后删除 gulp.src 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23952288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com