2014-03-02 20 views
1

我想尝试Gulpjs,因为它看起来非常快。我无法理解如何翻译Gulpjs中以下(部分)Gruntjs配置。如何在一个Gulpjs任务中添加已缩小的文件?

基本目的是丑化项目文件加上一些外部依赖(尚未精缩)和前面加上已经过压缩一些依赖,以避免对已经过压缩源的缩小过程。

uglify: { 
    dist: { 
     src: [ 
      '<%= deps %>/bootstrap-daterangepicker/daterangepicker.js', 
      '<%= deps %>/smalot-bootstrap-datetimepicker/js/locales/*.js', 
      'src/js/**/*.js', 
     ], 
     dest: '<%= clean.dist %>/js/<%= pkg.name %>.min.js' 
    } 
}, 

concat: { 
    dist: { 
     src: [ 
      '<%= deps %>/jquery/dist/jquery.min.js', 
      '<%= deps %>/bootstrap/dist/js/bootstrap.min.js', 
      '<%= deps %>/momentjs/min/moment-with-langs.min.js', 
      '<%= uglify.dist.dest %>' 
     ], 
     dest: '<%= uglify.dist.dest %>' 
    } 
}, 

如何在Gulpjs中做同样的事情?这甚至有可能吗?

现在我的任务(不工作,结果是jquery.min.js只是内容)看起来像:

gulp.task('uglify', function() { 
    gulp.src([ 
     './bower_components/bootstrap-daterangepicker/daterangepicker.js', 
     './bower_components/smalot-bootstrap-datetimepicker/js/locales/*.js', 
     './src/js/**/*.js' 
    ]) 
    .pipe(uglify()) 
    .pipe(concat('admin-template.js')) 
    .pipe(gulp.dest('./dist/js')); 
}); 

// Doesn't work 
gulp.task('concat', ['uglify'], function() { 
    gulp.src([ 
     'bower_components/jquery/dist/jquery.min.js', 
     './dist/js/admin-template.js' // output of uglify task 
    ]) 
    .pipe(concat('admin-template.js')) 
    .pipe(gulp.dest('./dist/js/')); 
}); 

回答

1

你需要从你的“丑化”任务返回流(或使用another method),如果你希望你的“concat”任务取决于你的“uglify”任务是否成功完成。

无论哪种方式,你都应该简化它。

你可以看看这个other SO thread的想法。我可能会使用gulp-if或event-stream。

,看一看在这里还有:https://github.com/gulpjs/gulp/blob/master/docs/recipes/using-multiple-sources-in-one-task.md

+0

感谢有用resouces。我想我会去流队列(需要学习)。 – gremo