stringtranslate.com

Gruñido (software)

Grunt es un ejecutor de tareas de JavaScript , una herramienta que se utiliza para ejecutar automáticamente tareas frecuentes como minificación , compilación , pruebas unitarias y linting . Utiliza una interfaz de línea de comandos para ejecutar tareas personalizadas definidas en un archivo (conocido como Gruntfile). Grunt fue creado por Ben Alman y está escrito en Node.js. Se distribuye a través de npm . En octubre de 2022, había más de 6000 complementos disponibles en el ecosistema Grunt. [5]

Las empresas y proyectos que utilizan Grunt incluyen Adobe Systems , jQuery , Twitter , Mozilla , Bootstrap , Cloudant , Opera , WordPress , Walmart y Microsoft . [5]

Descripción general

Grunt fue creado originalmente por Ben Alman en 2012 como una alternativa eficiente para simplificar la escritura y el mantenimiento de un conjunto de tareas de proceso de compilación de JavaScript en un archivo enorme. Fue diseñado como una herramienta de compilación de línea de comandos basada en tareas para proyectos de JavaScript. [6]

Grunt se utiliza principalmente para automatizar tareas que deben realizarse de forma rutinaria. Hay miles de complementos que se pueden instalar y utilizar directamente para realizar algunas tareas de uso común. Una de las características más deseables de Grunt es que es altamente personalizable, es decir, permite a los desarrolladores agregar, extender y modificar tareas personalizadas para que se ajusten a sus necesidades personales; cada tarea tiene un conjunto de opciones de configuración que el usuario puede establecer. Además, Grunt ofrece la capacidad de definir tareas personalizadas, que pueden combinar múltiples tareas existentes en una sola tarea o agregar una funcionalidad completamente nueva. [7]

Conceptos básicos

Interfaz de línea de comandos

La interfaz de línea de comandos (CLI) de Grunt se puede instalar globalmente a través de npm . Al ejecutar el gruntcomando se cargará y ejecutará la versión de Grunt instalada localmente en el directorio actual. Por lo tanto, podemos mantener diferentes versiones de Grunt en diferentes carpetas y ejecutar cada una como queramos. [5]

Archivos

Para usar Grunt en un proyecto, se deben crear dos archivos específicos en el directorio raíz, concretamente package.json y un Gruntfile.

Tareas

Las tareas son los módulos que realizan un trabajo específico y se definen en el archivo Gruntfile.

Los desarrolladores pueden cargar tareas predefinidas desde complementos de Grunt existentes o escribir código personalizado para definir sus propias tareas según sus requisitos. Una vez definidas, estas tareas se pueden ejecutar desde la línea de comandos simplemente ejecutando grunt <taskname>. Si lo <taskname>definido en el archivo Grunt es "predeterminado"grunt , entonces bastará con ejecutarlo .

Ejemplo

El siguiente es un ejemplo de un Gruntfile escrito en JavaScript que muestra cómo cargar complementos, crear tareas personalizadas y configurarlas:

módulo .exports = función ( gruñido ) {    // Configuración de la tarea grunt . initConfig ({ taskName1 : 'Configuración de la tarea1' , taskName2 : 'Configuración de la tarea2' });       // Carga complementos grunt . loadNpmTasks ( 'pluginName1' ); grunt . loadNpmTasks ( 'pluginName2' );   // Tareas personalizadas grunt . registerTask ( 'customTaskName1' , 'Descripción de la tarea personalizada' , function ( taskParameter ) { // Declaraciones personalizadas });       // Combinar varias tareas en una sola tarea grunt . registerTask ( 'customTaskName2' , [ 'taskName1' , 'customTaskName1' ]); // Tarea predeterminada: se ejecuta si no se especifica el nombre de la tarea grunt . registerTask ( 'default' , [ 'customTaskName2' ]);      };

En el ejemplo anterior, al ejecutar el gruntcomando se ejecutará <customtaskName2>lo que se definió anteriormente como una combinación de ambos <taskName1>y <customTaskName1>.

Complementos

Los complementos son código reutilizable que define un conjunto de tareas. Cada complemento contiene internamente un directorio de tareas con archivos JavaScript que tienen la misma sintaxis que un archivo Grunt. La mayoría de los complementos de Grunt se publican con la palabra clave gruntplugin[8] en npm y tienen el prefijo grunt. Esto ayuda a Grunt a mostrar todos los complementos en la lista de complementos de Grunt. Los complementos oficialmente compatibles con Grunt tienen el prefijo grunt-contrib[8] y también están marcados con un símbolo de estrella en la lista de complementos. Algunos complementos populares incluyen grunt-contrib-watch, grunt-contrib-clean, grunt-contrib-uglify.

Los desarrolladores pueden incluso crear sus propios complementos de Grunt usando el grunt-initcomplemento y publicarlos en npm usando el npm publishcomando.

Ventajas

Las siguientes son algunas de las ventajas de utilizar Grunt:

Comparación

Hormiga

Ant o Apache Ant es una herramienta de compilación basada en Java . Ant tiene un poco más de cien tareas integradas que se adaptan mejor a proyectos con una estructura de compilación Java. Escribir código personalizado en Ant requiere que los usuarios escriban un archivo JAR y lo hagan referencia desde XML . Esto agregaría complejidades innecesarias a proyectos que no requieren Java. Las configuraciones de compilación de Ant se enumeran en formato XML en lugar de JSON . [7]

Rastrillo

Rake permite a los desarrolladores definir tareas en Ruby . Rake no tiene el concepto de complementos o tareas predefinidas, lo que significa que todas las acciones requeridas deben escribirse y luego ejecutarse. Esto hace que los desarrollos sean costosos en comparación con Grunt, que tiene un gran conjunto de complementos reutilizables. [7]

Trago

Gulp.js es una herramienta de ejecución de tareas basada en JavaScript similar a Grunt, ya que ambas siguen una arquitectura modular y se basan en npm . Las tareas de Gulp se definen mediante código en lugar de configuración. Gulp es más rápido que Grunt. Grunt utiliza archivos temporales para transferir la salida de una tarea a otra, mientras que en Gulp los archivos se transmiten entre las tareas. [7]

Véase también

Referencias

  1. ^ "Fecha de lanzamiento de la versión 1.0.0" . Consultado el 31 de diciembre de 2020 .
  2. ^ "Lanzamientos · gruntjs/grunt". GitHub . Consultado el 16 de agosto de 2022 .
  3. ^ "Archivo LICENCIA en GitHub". GitHub . Consultado el 31 de diciembre de 2020 .
  4. ^ "Campo de licencia de grunt - npm" . Consultado el 31 de diciembre de 2020 .
  5. ^ abc "Grunt: El ejecutor de tareas de JavaScript". gruntjs.com . Consultado el 14 de septiembre de 2016 .
  6. ^ "Presentación de Grunt: código abierto, rendimiento, herramientas y flujo de trabajo - Bocoup". bocoup.com . Consultado el 14 de septiembre de 2016 .
  7. ^ abcd Cryer, James (2015). Pro Grunt.js . Versión impresa. pág. 1. ISBN 978-1-4842-0013-1.
  8. ^ ab Pillora, Jaime (2014). Introducción a Grunt: el ejecutor de tareas de JavaScript . Livery Place 35 Livery Street Birmingham B3 2PB, Reino Unido.: Packt Publishing Ltd. ISBN 978-1-78398-062-8.{{cite book}}: Mantenimiento de CS1: ubicación ( enlace )

Lectura adicional

Enlaces externos