Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Exécuter des tâches
Les monorepos peuvent contenir des centaines voire des milliers de projets. La capacité à exécuter des scripts npm sur tous ces projets (ou sur une sélection) est donc une fonctionnalité essentielle d'un outil comme Lerna.
Définitions
-
Commande - toute saisie du développeur dans le terminal (ex:
lerna run build --scope=header --concurrency=5). -
Cible - le nom d'un script npm (ex:
build). -
Tâche - une invocation de script npm (ex:
header:build).
Exemple de dépôt
Les exemples sont basés sur ce dépôt. Vous pouvez le cloner et suivre les démonstrations.
Tout exécuter
Chaque projet dispose des scripts test et build définis.
Exécutez :
npx lerna run build
Les projets seront construits dans l'ordre approprié : footer et header puis remixapp.
✔ header:build (501ms)
✔ footer:build (503ms)
✔ remixapp:build (670ms)
—————————————————————————————————————————————————————————————————————————————
Lerna (powered by Nx) Successfully ran target build for 3 projects (1s)
Notez que Lerna ne se préoccupe pas du contenu des scripts de build. Le nom build n'est pas spécial non plus : il s'agit simplement du nom du script npm.
Exécuter plusieurs tâches simultanément
Vous pouvez passer une liste de cibles séparées par des virgules pour déclencher leur exécution concurrente.
npx lerna run test,build,lint
S'il existe des dépendances entre vos tâches (par exemple build doit s'exécuter avant test pour certains packages), le gestionnaire de tâches coordonnera automatiquement à condition d'avoir configuré une Configuration du pipeline de tâches appropriée.
Exécuter une tâche pour un seul package
Pendant le développement, vous exécutez rarement tous les builds ou tous les tests. Au lieu de cela, vous travaillez généralement uniquement sur les projets que vous modifiez. Par exemple, vous pouvez exécuter les tests du header ainsi :
npx lerna run test --scope=header
Exécuter les tâches affectées par une PR
Vous pouvez également exécuter une commande pour tous les projets impactés par votre PR comme ceci :
npx lerna run test --since=origin/main
En savoir plus ici.
Contrôler l'exécution des tâches
Pour mieux maîtriser l'ordre d'exécution des tâches, modifiez la Configuration du pipeline de tâches.
Pour accélérer l'exécution des tâches, découvrez comment Mettre en cache les résultats et Distribuer l'exécution des tâches.
Chargement automatique des fichiers .env
Par défaut, le gestionnaire de tâches moderne (alimenté par Nx) charge automatiquement les fichiers .env. Vous pouvez désactiver ce comportement en positionnant --load-env-files sur false pour quelque raison que ce soit.
Pour plus de détails sur les fichiers .env chargés par défaut : https://nx.dev/recipes/environment-variables/define-environment-variables