Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Ejecutar tareas
Los monorepos pueden contener cientos o incluso miles de proyectos, por lo que poder ejecutar scripts npm en todos (o algunos) de ellos es una característica fundamental de herramientas como Lerna.
Definiciones
-
Comando - cualquier instrucción que el desarrollador escribe en la terminal (ej:
lerna run build --scope=header --concurrency=5). -
Objetivo - el nombre de un script npm (ej:
build). -
Tarea - una invocación de un script npm (ej:
header:build).
Repositorio de ejemplo
Los ejemplos se basan en este repositorio, así que siéntete libre de clonarlo y seguirlo.
Ejecutar todo
Cada proyecto tiene definidos los scripts test y build.
Ejecuta:
npx lerna run build
Esto construirá los proyectos en el orden correcto: footer y header, y luego remixapp.
✔ header:build (501ms)
✔ footer:build (503ms)
✔ remixapp:build (670ms)
—————————————————————————————————————————————————————————————————————————————
Lerna (powered by Nx) Successfully ran target build for 3 projects (1s)
Ten en cuenta que a Lerna no le importa qué hace cada script de construcción. El nombre build tampoco es especial: simplemente es el nombre del script npm.
Ejecutar múltiples tareas en paralelo
Puedes pasar una lista de objetivos separados por comas que deseas ejecutar concurrentemente.
npx lerna run test,build,lint
Si, por ejemplo, existen dependencias entre tus tareas, como que build deba ejecutarse antes de test para paquetes específicos, el ejecutor de tareas coordinará esto automáticamente siempre que hayas configurado una Configuración de canalización de tareas adecuada.
Ejecutar una tarea para un paquete
Durante el desarrollo, rara vez ejecutas todas las construcciones o pruebas. En su lugar, sueles ejecutar acciones solo en los proyectos que estás modificando. Por ejemplo, puedes ejecutar las pruebas de header así:
npx lerna run test --scope=header
Ejecutar tareas afectadas por un PR
También puedes ejecutar un comando para todos los proyectos afectados en tu pull request:
npx lerna run test --since=origin/main
Aprende más aquí.
Controlar cómo se ejecutan las tareas
Para mayor control sobre el orden de ejecución de tareas, edita la Configuración de canalización de tareas.
Para acelerar la ejecución de tareas, aprende cómo Almacenar en caché resultados de tareas y Distribuir ejecución de tareas.
Carga automática de archivos .env
Por defecto, el ejecutor moderno de tareas impulsado por Nx cargará automáticamente archivos .env. Puedes desactivar este comportamiento estableciendo --load-env-files en false si lo deseas.
Para más detalles sobre qué archivos .env se cargan por defecto, consulta: https://nx.dev/recipes/environment-variables/define-environment-variables