gulp-concat两次添加相同的文件

时间:2017-06-07 16:10:17

标签: gulp gulp-concat

我发现了与此帖(gulp-concat twice the content)类似的问题。 但是,我正在将连接文件转储到另一个目录中,因此它不会将生成的连接文件拉入任务,但我看到每个文件的内容由于某种原因而翻倍。

我的gulp文件如下:

/* jshint node: true */

module.exports = function (gulp, options, plugins) {
    var merge = require('merge-stream');
    var uglify = require('gulp-uglify');
    var pump = require('pump');
    var gp_concat = require('gulp-concat');
    var gp_rename = require('gulp-rename');
    var gp_ignore = require('gulp-ignore');
    var ngAnnotate = require('gulp-ng-annotate');

    var paths = require('../paths');
    var utils = require('../utils');

    var base = [
        paths.APP,
        paths.ETC,
        paths.DESIGN
    ];

    gulp.task('scripts:clean', function () {
        var srcOptions = {
            read: false
        };

        var tasks = base.map(function (folder) {
            return gulp.src(folder + '/**/' + paths.GENERATED_SUBPATH + '/js/**/*.js', srcOptions)
                .pipe(plugins.clean({force: true}));
        });

        return merge(tasks);
    });


    gulp.task('compress', function () {
        var filesToInclude = ['**/app/components/**/*.js'
                              ];
        var excludeCondition = '**/*.spec*.js'
        var fileToDest = paths.GLOBAL + '/'+paths.GENERATED_SUBPATH + '/js';
        return gulp.src(filesToInclude)
            .pipe(gp_ignore.exclude(excludeCondition))
            .pipe(ngAnnotate({add: true}))
            .pipe(gp_concat('all.concat.js'))
            .pipe(gulp.dest('dist'))
            .pipe(gp_rename('all.min.js'))
            .pipe(uglify())
            .pipe(gulp.dest(fileToDest));
    });



    gulp.task('scripts:build', ['scripts:clean', 'compress']);
};

有人可以帮我理解为什么

var filesToInclude = ['**/app/components/**/*.js];

会将每个文件带入两次?我检查了文件,不,文件不会在那里的任何地方重复。

1 个答案:

答案 0 :(得分:1)

似乎问题在于filesToInclude的定义,它以通配符开头。由于fileToDest将文件放在一个单独的目标目录中,但结构相同,因此进程会两次拾取文件。