1

我想试试 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/'));
});
4

1 回答 1

1

如果您希望“concat”任务依赖于“uglify”任务的成功完成,则需要从“uglify”任务中返回流(或使用其他方法)。

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

您可以查看其他 SO 线程以获取想法。我可能会使用 gulp-if 或事件流。

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

于 2014-03-02T20:38:45.353 回答