Scripts npm avanzados: encadenar, paralelizar y optimizar

Lleva tus scripts al siguiente nivel. Aprende a ejecutar múltiples tareas en paralelo o serie, usar herramientas como npm-run-all, y estructurar scripts complejos para proyectos profesionales.

Los scripts básicos de npm covering necesidades simples, pero cuando trabajas en proyectos reales, a menudo necesitas ejecutar múltiples tareas: lint + test antes de hacer commit, servidor de desarrollo + servidor de API en paralelo, o build de varios paquetes.

En esta lección vas a aprender técnicas avanzadas para scripts npm: ejecutar tareas en serie con &&, en paralelo con herramientas como concurrently, y estructurar scripts complejos de forma mantenible.

Al terminar, tendrás scripts profesionales que automatizan flujos de trabajo completos de forma eficiente.

  • Ejecutar tareas una después de otra.
  • El operador && ejecuta el segundo comando solo si el primero termina exitosamente (código de salida 0). Esto es útil para flujos donde cada paso depende del anterior: lint debe pasar antes de test, build debe terminar antes de deploy.
  • El operador ; (punto y coma) ejecuta el segundo comando sin importar si el primero falló. Úsalo con precaución.
  • Ejecutar múltiples tareas simultáneamente.
  • A veces necesitas ejecutar varias tareas al mismo tiempo: servidor de desarrollo + servidor de API + watcher de tests. El operador & no funciona bien en cross-platform, así que usamos concurrently.

Encadenar en serie: &&

Ejecutar tareas una después de otra.

El operador && ejecuta el segundo comando solo si el primero termina exitosamente (código de salida 0). Esto es útil para flujos donde cada paso depende del anterior: lint debe pasar antes de test, build debe terminar antes de deploy.

El operador ; (punto y coma) ejecuta el segundo comando sin importar si el primero falló. Úsalo con precaución.

Ejecutar en paralelo: concurrently

Ejecutar múltiples tareas simultáneamente.

A veces necesitas ejecutar varias tareas al mismo tiempo: servidor de desarrollo + servidor de API + watcher de tests. El operador & no funciona bien en cross-platform, así que usamos concurrently.

concurrently es una librería que permite ejecutar múltiples comandos en paralelo. Es especialmente útil para desarrollo local donde quieres varios procesos corriendo.

npm-run-all: control total

Ejecutar múltiples scripts con npm-run-all.

npm-run-all ofrece más control que concurrently: puedes ejecutar en serie (--serial) o en paralelo (--parallel), esperar a que todos terminen, o continuar aunque uno falle.

Los patrones te permiten ejecutar grupos de scripts con wildcards: 'npm run build:*' ejecuta todos los scripts que empiezan con 'build:'.

Scripts para flujos de trabajo comunes

Automatiza tu flujo de desarrollo.

Estos son scripts que verás en proyectos profesionales: 'precommit' corre lint y test antes de cada commit, 'prepush' corre tests antes de hacer push, y 'prepare' se ejecuta al instalar el proyecto.

Estos hooks de lifecycle te ayudan a mantener calidad de código sin depender de que cada desarrollador recuerde ejecutar las verificaciones.

Variables de entorno en scripts

Personaliza comportamiento según el entorno.

Puedes pasar variables de entorno a tus scripts directamente en la línea de comando o definirlas en package.json. Esto es útil para configurar entornos: desarrollo, staging, producción.

npm config también puede almacenar valores que tus scripts leen.

NPM
10

Scripts npm avanzados: encadenar, paralelizar y optimizar

Lleva tus scripts al siguiente nivel. Aprende a ejecutar múltiples tareas en paralelo o serie, usar herramientas como npm-run-all, y estructurar scripts complejos para proyectos profesionales.

Código del tema: npm run

📘 Teoría

Encadenar en serie: &&

Ejecutar tareas una después de otra.

El operador && ejecuta el segundo comando solo si el primero termina exitosamente (código de salida 0). Esto es útil para flujos donde cada paso depende del anterior: lint debe pasar antes de test, build debe terminar antes de deploy.

El operador ; (punto y coma) ejecuta el segundo comando sin importar si el primero falló. Úsalo con precaución.

Ejecutar en paralelo: concurrently

Ejecutar múltiples tareas simultáneamente.

1

A veces necesitas ejecutar varias tareas al mismo tiempo: servidor de desarrollo + servidor de API + watcher de tests. El operador & no funciona bien en cross-platform, así que usamos concurrently.

2

concurrently es una librería que permite ejecutar múltiples comandos en paralelo. Es especialmente útil para desarrollo local donde quieres varios procesos corriendo.

npm-run-all: control total

Ejecutar múltiples scripts con npm-run-all.

1

npm-run-all ofrece más control que concurrently: puedes ejecutar en serie (--serial) o en paralelo (--parallel), esperar a que todos terminen, o continuar aunque uno falle.

2

Los patrones te permiten ejecutar grupos de scripts con wildcards: 'npm run build:*' ejecuta todos los scripts que empiezan con 'build:'.

Scripts para flujos de trabajo comunes

Automatiza tu flujo de desarrollo.

1

Estos son scripts que verás en proyectos profesionales: 'precommit' corre lint y test antes de cada commit, 'prepush' corre tests antes de hacer push, y 'prepare' se ejecuta al instalar el proyecto.

2

Estos hooks de lifecycle te ayudan a mantener calidad de código sin depender de que cada desarrollador recuerde ejecutar las verificaciones.

Variables de entorno en scripts

Personaliza comportamiento según el entorno.

1

Puedes pasar variables de entorno a tus scripts directamente en la línea de comando o definirlas en package.json. Esto es útil para configurar entornos: desarrollo, staging, producción.

2

npm config también puede almacenar valores que tus scripts leen.

🧪 Aprende probando

Ejemplo Ejemplo: script de precommit Configura un script que corre antes de cada commit.

🏁 Retos

Reto Reto 1: Encadenar lint y test Crea un script que ejecute lint y luego test.
Reto Reto 2: Ejecutar en paralelo Usa concurrently para ejecutar dos tareas.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre NPM.

Test de NPM

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com