grunt vs gulp

automatizadores de tareas

dos grandes automatizadores

(aunque hay más)

grunt
trabaja con archivos temporales
gulp
trabaja con streams

1. Comparación general

grunt gulp
node + npm node + npm
v0.4.5 [-2, 3] v3.9.0
+ lento + rápido
+ sencillo + complejo
4.403 plugins 2.083 plugins

2. En git-hub

(08/01/2016)

grunt gulp
stars 10.376 18.555
issues 116 open / 909 closed 38 open / 1.0127 closed
contributors 56 7
release 8 15
last commit Jan 5, 2016 Jan 1, 2016

3. El logo de grunt es más divertido

4. Lo más importante

grunt es configuración

gulp es programación

grunt


'use strict';

module.exports = function(grunt) {

  require('load-grunt-tasks')(grunt);

  grunt.initConfig({
      uglify: {
          js: {
              options: {
                mangle: false,
                sourceMap: true,
                drop_console: true,
                sourceMapName: 'dist/js/app.map'
              },
          files: [{
                    src: 'src/js/**/*.js',
                    dest: 'dist/js/app.min.js'
            }]
          }
      }

  });
  grunt.registerTask('default', ['uglify']);
};
						

gulp


const gulp = require('gulp');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
const sourcemaps 	= require('gulp-sourcemaps');

var configUglify = {
	mangle: false,
	compress: {
		sequences: true,
		properties: true,
		dead_code: true,
		drop_debugger: true,
		drop_console: true,
		conditionals: true,
		comparisons: true,
		booleans: true,
		if_return: true,
		join_vars: true,
		warnings: true
		
	},
	outSourceMap: true
};

var configMap = {
	loadMaps: false,
    debug: true
};

var configConcat = {
	newLine:'\n;'
};      

gulp.task('default', () => {
	return gulp
		.src('src/js/**/*.js')
		.pipe(plumber())
		.pipe(sourcemaps.init(configMap))
        .pipe(concat('app.js', configConcat))
		.pipe(uglify(configUglify))
       	.pipe(sourcemaps.write('.', {
            includeContent: true,
            sourceRoot: '/',
        }))
        .pipe(plumber.stop())
		.pipe(gulp.dest('dist/js/'));
});
						

¿Entonces?

da igual uno que otro
escoge con el que te sientas más cómodo...

o cualquier otra cosa, como el npm