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 →
Commandes
Options de filtrage
Les commandes Lerna acceptent des options de filtrage pour contrôler les packages sur lesquels elles opèrent.
Options pour les sous-commandes de lerna nécessitant un filtrage
Installez lerna pour accéder au CLI lerna.
Options
--scope <glob>
Inclut uniquement les packages dont le nom correspond au glob spécifié.
$ lerna exec --scope my-component -- ls -la
$ lerna run --scope "toolbar-*" test
$ lerna run --scope package-1 --scope "*-2" lint
Note : Pour certains globs, il peut être nécessaire d'encadrer l'argument entre guillemets pour éviter une expansion prématurée par le shell.
Exécution avec npx
Lors de l'exécution de lerna avec npx, il faut utiliser explicitement "=" pour passer les arguments glob. Cela évite qu'npx ne les développe prématurément.
Par exemple :
$ npx lerna run --scope="toolbar-*" test
$ npx lerna run --scope="package-{1,2,5}" test
--ignore <glob>
Exclut les packages dont le nom correspond au glob spécifié.
$ lerna exec --ignore "package-{1,2,5}" -- ls -la
$ lerna run --ignore package-1 test
$ lerna run --ignore "package-@(1|2)" --ignore package-3 lint
Plus d'exemples de filtrage sont disponibles ici.
--no-private
Exclut les packages privés. Ils sont inclus par défaut.
--since [ref]
Inclut uniquement les packages modifiés depuis la référence ref spécifiée. Si aucune référence n'est fournie, la dernière étiquette est utilisée par défaut.
# List the contents of packages that have changed since the latest tag
$ lerna exec --since -- ls -la
# Run the tests for all packages that have changed since `main`
$ lerna run test --since main
# List all packages that have changed since `some-branch`
$ lerna ls --since some-branch
Cela peut être particulièrement utile dans un environnement d'intégration continue (CI), si vous pouvez obtenir la branche cible vers laquelle une PR sera fusionnée. Vous pouvez alors l'utiliser comme ref pour l'option --since. Cette approche fonctionne aussi bien pour les PR fusionnées dans la branche par défaut que dans les branches de fonctionnalités.
--exclude-dependents
Exclut tous les dépendants transitifs lors de l'exécution d'une commande avec --since, en remplaçant l'algorithme par défaut de "modification".
Ce drapeau n'a aucun effet sans --since et générera une erreur dans ce cas.
--include-dependents
Inclut tous les dépendants transitifs lors de l'exécution d'une commande, indépendamment des options --scope, --ignore ou --since.
--include-dependencies
Inclut toutes les dépendances transitives lors de l'exécution d'une commande, indépendamment des options --scope, --ignore ou --since.
Utilisée avec toute commande acceptant --scope (bootstrap, clean, ls, run, exec).
Garantit que toutes les dépendances (et dépendances de développement) des packages inclus dans le périmètre (via --scope ou --ignore) sont également traitées.
Remarque : Cela remplacera les drapeaux
--scopeet--ignore.Exemple : Un package exclu par
--ignoresera tout de même initialisé s'il est dépendu par un autre package en cours d'initialisation.
Utile dans les situations où vous souhaitez "configurer" un package unique dépendant d'autres packages déjà configurés.
$ lerna bootstrap --scope my-component --include-dependencies
# my-component and all of its dependencies will be bootstrapped
$ lerna bootstrap --scope "package-*" --ignore "package-util-*" --include-dependencies
# all packages matching "package-util-*" will be ignored unless they are
# depended upon by a package whose name matches "package-*"
--include-merged-tags
$ lerna exec --since --include-merged-tags -- ls -la
Inclut les tags des branches fusionnées lors de l'exécution d'une commande avec --since. Utile uniquement si vous publiez fréquemment depuis des branches de fonctionnalités, pratique généralement déconseillée.
Limites
Bien qu'il soit possible d'exécuter Lerna sans d'abord installer les dépendances du projet (par exemple avec pnpm dlx ou npx), ce n'est pas recommandé. La commande peut fonctionner, mais ses résultats peuvent manquer de précision. Voir cette issue pour plus de détails.