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.