3 Build Tools que debes conocer

Jhonny Ventiades
3 min readJun 13, 2022

Explora este contenido en formato audio en el Podcast Declarando Variables

¿Que son Build Tools?

Preguntemos a Stack Over Flow (pregunta de hace 10 años y 9 meses):

Build tools son programas que automatizan la creacion de aplicaciones ejecutables desde tu codigo. Este proceso de build incluye compilado, empaquetado, etc a una forma usable.

Ejemplo:

Si te vas a la web de webpack que es una popular herramienta web, veras en la intro que convierte archivos:

Entonces, la idea de un build tool es convertir archivos que tienen dependencias en archivos estaticos y que funcionen para ejecutar una app.

Un navegador no reconoce archivos como typescritpt o sass, es por ello que debemos convertirlos antes a archivos javascript.

¿Deberia aprender sobre ellos?

Si, sin dudarlo. No todo en la vida es escribir codigo, tambien queremos ver nuestro trabajo reflejado cuando se ejecuta, compila y se muestra en una pantalla. Conocer estas herramientas te ayudara a ser mas productivo.

¿Cual es el mejor o cual deberia usar?

Siempre buscamos usar la mejor herramienta, la mas moderna, etc. pero la verdad es que existe un monton de build tools y debes elegir el que mas te sirva y seguramente utilizaras diferentes en cada proyecto.

Existen diferentes desde sistemas grandes y complejos como Gulp, Grunt. Pero tambien existen otro mas simples.

Las desventajas de sistemas complejos que requieran instalaciones o configuraciones adicionales radica en que añades mas complejidad al proyecto a nivel de dependencias y puede que la documentacion no siempre este actualizada.

¿Que son Los Simple Build tools?

Estan basados en scripts que se ejecutan por linea de comandos, y no necesitas mucho conocimiento para empezar a utilizarlos.

1. Npm Script

Estos scripts estan dentro del package.json en la seccion llamada scriptss.

Son parte npm asi que puedes empezarlos en cualquier proyecto con esta tecnologia.

Se llaman se la siguiente manera:

npm run [task-name]

Ej.

{ 

"pre-publish": "ng lint && ng build" "build": "npm run build:scripts -s && npm run build:styles -s && npm run build:markup -s", "run-build-file": "./build-file.js"

}

Ventajas

  • Vienen con NPM, no necesitamos nada mas para empezar a usarlos.
  • Puedes llamar a cualquier script o comando que desees rapidamente (build, publish, post install).

Desventajas

  • Se escriben en una sola linea, asi que si los scripts se vuelven complejos es dificil de trabajarlos.
  • Mas condiciones generan mas problemas.
  • Es difcil documentar estas tareas.

2. Makefile

Es un archivo donde escribes todas las instrucciones a ejecutar.

Ventajas

  • Implementar logica compleja no es un problema.
  • Es facil de leer.
  • No necesitas instalar herramientas adicioneles por que ya vienen integradas en la terminal, a menos que seas usuario Windows.

Desventajas

  • Estas atado a codigo shell que es en el que esta escrito.
  • Tienes que aprender a usarlo, puede tener una ligera curva de aprendizaje dependiendo lo que quieras hacer.

Ejemplos:

Para correr un test de manera global puede que necesites:

  1. Correr el build para ver que nada este roto
  2. Ejecutar Unist Test
  3. Ejecutar tests de integracion
  4. Ejecutar test automatizados

3. RunJS

Se puede instalar con npm y es muy sencillo de usar

Ventajas:

  • Puede usar codigo javascript para construir tus condiciones, todo dentro del archivo “run.js”
  • Facil lectura

Desventajas:

  • Tienes que instalarlos para usarlo

Conclusiones:

Estos son algunos build tools que existen y claro hay muchos mas, no es necesario que los aprendas todos a fondo, pero si que los conozcas y entiendas las ventajas y desventajas de cada unos de ellos.

Muchas veces podras convinarlos para potenciar tu productivida, npm y make es una gran convinacion para proyectos de diferentes tamaños.

Referencias:

--

--