pnpm exec
Exécute une commande shell dans le cadre d'un projet.
node_modules/.bin
est ajouté au PATH
, donc pnpm exec
permet d'exécuter des commandes de dépendances.
Exemples
Si vous avez Jest en tant que dépendance de votre projet, il n'est pas nécessaire d'installer Jest globalement, exécutez-le simplement avec pnpm exec
:
pnpm exec jest
La partie exec
est en fait facultative lorsque la commande n'est pas en conflit avec une commande pnpm intégrée, vous pouvez donc également exécuter:
pnpm jest
Options
Toute option pour la commande exec
doit être listée avant le mot-clé exec
. Les options listées après le mot-clé exec
sont passées à la commande exécutée.
Bien. pnpm s'exécutera de manière récursive :
pnpm -r exec jest
Mauvais, pnpm
ne s'exécutera pas de manière récursive, mais jest
sera exécuté avec l'option -r
:
pnpm exec jest -r
--recursive, -r
Exécutez la commande shell dans chaque projet de l'espace de travail.
Le nom du package actuel est disponible via la variable d'environnement PNPM_PACKAGE_NAME
.
Exemples
Supprimer les installations de tous les paquets dans les différents node_modules
:
pnpm -r exec rm -rf node_modules
Affiche les informations relatives à chaque paquet. Ceci doit être utilisé avec l'option --shell-mode
(ou -c
) pour que la variable d'environnement fonctionne.
pnpm -rc exec pnpm view \$PNPM_PACKAGE_NAME
--resume-from <nom_du_paquet>
Reprendre l’exécution à partir d’un projet spécifique. Cela peut être utile lorsque l'on travaille avec un workspace de taille conséquente et que l'on souhaite redémarrer une build depuis un projet spécifique sans devoir exécuter tous les projets qui le précèdent dans l’ordre de la build.
--parallel
Completely disregard concurrency and topological sorting, running a given script immediately in all matching packages with prefixed streaming output. C'est l'indicateur préféré pour les processus de longue durée sur de nombreux packages, par exemple, un long processus de génération.
--shell-mode, -c
Exécute la commande à l'intérieur d'un shell. Sur UNIX, le shell utilisé est /bin/sh
, sur Windows c'est \cmd.exe
.
--report-summary
Pour en savoir plus sur cette option, consulter la documentation de la commande run