2017-06-07 53 views
0

我看到與此文章類似的問題(gulp-concat twice the content)。 但是,我將連接文件轉儲到不同的目錄中,因此它不會將生成的連接文件拖入任務中,但由於某種原因,每個文件的內容都會翻倍。gulp-concat正在兩次添加相同的文件

我一飲而盡文件如下:

/* 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]; 

將在每個文件帶來了兩次?我已經檢查過這些文件,並且沒有,這些文件在那裏的任何地方都沒有重複。

+0

此外,爲了清楚起見,我正在查看all.concat.js文件,並注意到所有內容都是重複的,而不是all.min.js文件 – daitienshi

回答

1

看來這個問題與filesToInclude的定義有關,它以一個通配符開始。由於fileToDest將文件放置在單獨的目標目錄中,但結構相同,因此該過程將拾取文件兩次。

相關問題