Página principal » Caja de herramientas » La batalla de los scripts de construcción Gulp Vs Grunt

    La batalla de los scripts de construcción Gulp Vs Grunt

    Ya he escrito sobre cómo empezar a utilizar Gulp y sobre cómo empezar con Grunt. Ambos automatizar nuestras tareas, ambos usar nodo, y ambos te exigen crear tareas e instalar complementos de algún tipo. Pero te preguntas acerca de la diferencia entre los dos, o incluso, que es mejor?

    En este artículo me centraré principalmente en Las diferencias entre estos dos proyectos. lo que puede influir para ayudarlo a decidir cuál de los dos puede considerar mejor para usted. Estaré usando un código que puede ser desconocido. Si es así, sugiero leer los dos artículos publicados anteriormente antes de comenzar.

    Más en Hongkiat.com

    • Cómo empezar con Gulp
    • Cómo empezar con Grunt

    Velocidad

    La principal diferencia entre Gulp y Grunt reside en Cómo manejan sus tareas de automatización en el interior.. Gulp usa flujos de nodos, mientras que Grunt usa archivos temporales. Vamos a poner eso en un lenguaje sencillo, vamos?

    Supongamos que desea escribir el código SASS para su proyecto. Usted querría compilar su código SASS y luego tal vez minimizarlo.

    Grunt maneja esto usando archivos intermedios que son las operaciones de E / S del disco. Su archivo SASS se compila y luego se escribe en un archivo temporal. El archivo temporal es utilizado por el autoprefixer y luego el producto final se escribe en el archivo de destino.

    Gulp se encarga de todo esto. en memoria. Su archivo SASS de origen se compila, el resultado se pasa al autoprefixer sin que se escriba en un archivo y el archivo de destino se escribe.

    En comparación con las operaciones en memoria, las escrituras en disco son lentas, lo que significa que Gulp tiene una gran ventaja de velocidad. (por ahora). Tech.tmw realizó una comparación de la velocidad que muestra que la mayoría de las tareas son al menos el doble de rápidas en Gulp. Si bien este no fue un estudio muy científico, la tendencia está ahí y he visto lo mismo con mis propios proyectos. Pero qué tan grande es el impacto es la diferencia en velocidad?

    Diferencia en segundos

    Para la mayoría de los proyectos esto no importará. La mayoría de los proyectos son pequeños. Cuando creas un tema de WordPress o algo similar, la cantidad de archivos con los que necesitas trabajar está dentro de un límite razonable. Realmente no importa si sus hojas de estilo están compiladas en 400ms o 800ms.

    Además, la mayoría de los proyectos pueden ser estructurado de tal manera que algunos de los problemas más intensos pueden ser eludidos. Si tiene 50 archivos SASS, puede concatenarlos con la misma rapidez mientras se encuentra en desarrollo, no será necesario modificarlos automáticamente o minimizarlos. No necesitará optimizar las imágenes cada vez que guarde un proyecto, y así sucesivamente..

    Incluso cuando realmente necesita las grandes armas porque está presionando su trabajo en un servidor de pruebas o cuando está actualizando un repositorio, un tiempo construido de 5 segundos o 9 segundos hace una gran diferencia?

    Para colmo, Grunt agregará soporte para tuberías en la próxima versión 0.5 que acelerará considerablemente las cosas, lo que lo convierte en un punto discutible.

    La comunidad

    Grunt ha existido por mucho más tiempo que Gulp, por lo que tiene una base de usuarios importante. Grunt actualmente recibe alrededor de 37,000 descargas al día en promedio, Gulp obtiene un poco más de la mitad, cerca de la marca de 23,000. Dicho esto, Gulp solo ha existido por un año y medio, haciendo que ese número sea respetable por decir lo menos..

    Grunt actualmente tiene más de 4000 complementos, mientras que Gulp tiene más de 1200 complementos. De acuerdo con las tendencias de Google, más personas buscan cosas relacionadas con Grunt, hay más foros que tratan con eso y, en general, más apoyo de la comunidad.

    Por supuesto que Gulp está subiendo, lo que significa que esto es probablemente a la larga. Sin embargo, esto es una barrera para algunos desarrolladores, especialmente aquellos que trabajan en proyectos basados ​​en Grunt.

    Me gustaría señalar que las comunidades para ambos son extremadamente agradable. Por lo que puedo decir, la relación entre los líderes en cada comunidad es increíble y debería servir de ejemplo para todos. El creador de Gulp en realidad ayudó al autor de la comparación de la prueba de velocidad a mejorar las precisiones de tiempo que llevan a una disminución en las diferencias de tiempo. Eso es lo que yo llamo un caballero!

    Código Vs Configuración

    Aparentemente, este es el punto de inflexión para muchos, pero para ser honesto, no puedo ver el problema aquí personalmente.

    El argumento es así: Gulp es un buen ejemplo de que el código sobre la configuración puede ser bueno cuando la configuración se vuelve un poco confusa. Otras personas dicen que si bien esto es cierto y Gulp es más fácil leer, es más difícil escribir porque la tubería puede ser un poco confusa.

    Antes de hacer un peso, aquí está el mismo ejemplo primero en Grunt, luego en Gulp:

     grunt.initConfig (sass: dist: files: [src: 'dev / *. scss', dest: '.tmp / styles', expand: true, ext: '.css'], autoprefixer : dist: files: [expand: true, cwd: '.tmp / styles', src: ', * / *. css', dest: 'css / styles'], watch:  estilos: archivos: ['dev / *. scss'], tareas: ['sass: dist', 'autoprefixer: dist']); grunt.registerTask ('predeterminado', ['estilos', 'ver']); 
     gulp.task ('sass', function () gulp.src ('dev / *. scss') .pipe (sass ()) .pipe (autoprefixer ()) .pipe (gulp.dest ('css / styles' ));); gulp.task ('default', function () gulp.run ('sass'); gulp.watch ('dev / *. scss', function () gulp.run ('sass');); ); 

    Mi opinión es que realmente no importa. Claro, si estás acostumbrado a la primera forma, es posible que tengas que dedicar un tiempo a averiguar la segunda, pero esto también es cierto al contrario. Así que para mí, la “es confuso” el argumento es completamente inválido. Alguna El nuevo método que aprendes es confuso al principio, pero si te tomas el tiempo para entender la lógica de cada uno, todo se iguala.

    Dicho esto, yo personalmente prefiero API de Gulp porque está limpioer, y refleja la forma en que pienso más de cerca que Grunt. Esto es por supuesto completamente subjetivo y no es un problema con Grunt, es solo mi preferencia personal.

    Como escoger

    No creo que haya ninguna duda sobre el hecho de que tanto Grunt como Gulp son excelentes herramientas y han ayudado a las personas a ahorrar innumerables horas de tiempo a lo largo de los años. Grunt es un poco más lento por ahora, pero tiene una comunidad mucho más grande. Gulp es más rápido, tiene una API más limpia, pero carece de la base de usuarios.

    Creo que la decisión en última instancia se reducirá a continuidad, complementos disponibles y preferencia.

    (1) Si ha estado usando Grunt / Gulp por un tiempo y estas feliz con eso, no hay razón para cambiar.

    (2) Si tu proyecto requiere complementos Gulp no los proporciona y usted no está preparado para escribir uno, deberá ir con Grunt..

    (3) Si las dos consideraciones anteriores no se aplican a usted, se reducirá a la preferencia. Sugiero probar ambos y ver cual se queda contigo.

    Como dije, elegí usar Gulp porque me gusta más su API más limpia pero me siento perfectamente cómodo usando Grunt si un proyecto lo requiere. Lo que debes no Lea lo que el Sr. Sabelotodo dijo que Gulp es mejor y acéptelo. Si bien hay diferencias, no hay un ganador claro y Ambos proyectos pueden y van a coexistir.. Pruébalos y decídete..

    Nota: es posible que también desee considerar las opiniones de usuarios como Keith Cirkel (un consultor de Javascript) que le aconseja utilizar ninguno. En su interesante Por qué deberíamos dejar de usar el artículo de Grunt & Gulp, él sugiere usar npm.

    Otras lecturas

    Hay muchos otros artículos excelentes sobre este tema. Recomendaría vivamente cualquiera de las siguientes para una lectura adicional; Nunca duele leer lo que otros tienen que decir!

    • Grunt vs Gulp - Más allá de los números (gracias especiales por los ejemplos claros)
    • Gulp, Grunt, lo que sea
    • Elija: Grunt, Gulp o npm?
    • Speedtesting Gulp and Grunt
    • Por qué deberíamos dejar de usar Grunt & Gulp
    • Build Wars (usa las flechas para navegar)
    • No hay necesidad de gruñir, tomar un trago de aire fresco