首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Gulp中连接后删除原始文件

在Gulp中连接后删除原始文件
EN

Stack Overflow用户
提问于 2016-04-06 11:03:33
回答 2查看 2.6K关注 0票数 4

我想连接我的文件,并把它写成一个文件,然后我想删除原始文件。我应该如何在我的默认任务中解决这个问题?

代码语言:javascript
复制
var es = require('event-stream');
var concat = require('gulp-concat');
var unique = require('array-unique');

function concatGroup(groupName, group){

    return gulp.src(unique(group.files))
        .pipe(concat(groupName + '.js'))
        .pipe(gulp.dest(group.target));
}

gulp.task('default', function () {
    var groups = {
        test: {
            files: [array of files],
            target: "target dir"
        },
        test2: {
            files: [array of files],
            target: "target dir"
        },
        test3: {
            files: [array of files],
            target: "target dir"
        }
    };

    var streams = [];
    for (var groupName in groups) {
        streams.push(concatGroup(groupName, groups[groupName]));
    }
    return es.concat.apply(es, streams);
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-06 11:22:12

只需侦听流中的end事件,然后使用del

代码语言:javascript
复制
var concat = require('gulp-concat');
var unique = require('array-unique');
var del = require('del');

gulp.task('default', function (done) {
  var groupName = "test",
      group = {
        files: [array of files],
        target: "target dir"
      };

  var files = unique(group.files)
  gulp.src(files)
    .pipe(concat(groupName + '.js'))
    .pipe(gulp.dest(group.target))
    .on('end', function() {
      del(files).then(function() {
        done();
      });
    });
});
票数 8
EN

Stack Overflow用户

发布于 2016-04-06 13:04:31

谢谢你们的帮助,这是我最后的代码。我只需创建一个新的空流,并返回事件流合并,并在文件删除时标记完成。

代码语言:javascript
复制
var es = require('event-stream');
var concat = require('gulp-concat');
var unique = require('array-unique');
var del = require('del');

function concatGroup(groupName, group) {

    var stream = through.obj();

    gulp.src(unique(group.files))
        .pipe(concat(groupName + '.js'))
        .pipe(gulp.dest(group.target))
        .on('end', function () {
            del(group.files).then(function () {
                stream.end();
            });
        });

    return stream;
}

gulp.task('default', function () {
    var groups = {
        test: {
            files: [array of files],
            target: "target dir"
        },
        test2: {
            files: [array of files],
            target: "target dir"
        },
        test3: {
            files: [array of files],
            target: "target dir"
        }
    };

    var streams = [];
    for (var groupName in groups) {
        streams.push(concatGroup(groupName, groups[groupName]));
    }
    return es.concat.apply(es, streams);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36449227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档