如何在一个Gulpjs任务中添加已经缩小的文件?

时间:2014-03-02 19:28:40

标签: node.js gruntjs gulp

我想尝试Gulpjs,因为它看起来非常快。我无法理解如何在Gulpjs中翻译以下(部分)Gruntjs配置。

基本上,目的是 uglify项目文件加上一些外部依赖(尚未缩小)并预先添加一些已经缩小的依赖,以避免已经缩小的缩小过程源。

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 个答案:

答案 0 :(得分:1)

如果您希望“concat”任务依赖于“uglify”任务成功完成,则需要从“uglify”任务返回流(或使用another method)。

无论哪种方式,你当然应该简化这一点。

您可以查看此other SO thread的想法。我可能会使用gulp-if或event-stream。

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