pnpm exec
Ejecuta un comando de shell en el ámbito de un proyecto.
La carpeta node_modules/.bin
se agrega al PATH
, por lo que pnpm exec
permite ejecutar comandos que exponen ciertas dependencias.
Ejemplos
Si tienes Jest como dependencia de tu proyecto, no es necesario instalar Jest globalmente, simplemente ejecútalo con pnpm exec
:
pnpm exec jest
El argumento exec
es opcional cuando el comando a ejecutar no está en conflicto con un comando incorporado de pnpm, así que también puedes ejecutar:
pnpm jest
Opciones
Cualquier opción para el comando exec
debe aparecer antes de la palabra exec
. Las opciones listadas después de la palabra exec
se pasan al comando ejecutado.
Bien. pnpm se ejecutará recursivamente:
pnpm -r exec jest
Mal, pnpm no se ejecutará recursivamente pero jest
se ejecutará con la opción -r
:
pnpm exec jest -r
--recursive, -r
Ejecuta un comando de shell en cada proyecto del workspace.
El nombre del paquete actual está disponible a través de la variable de entorno PNPM_PACKAGE_NAME
.
Ejemplos
Prune node_modules
installations for all packages:
pnpm -r exec rm -rf node_modules
View package information for all packages. This should be used with the --shell-mode
(or -c
) option for the environment variable to work.
pnpm -rc exec pnpm view $PNPM_PACKAGE_NAME
--resume-from <package_name>
Resume execution from a particular project. This can be useful if you are working with a large workspace and you want to restart a build at a particular project without running through all of the projects that precede it in the build order.
--parallel
Completely disregard concurrency and topological sorting, running a given script immediately in all matching packages with prefixed streaming output. This is the preferred flag for long-running processes over many packages, for instance, a lengthy build process.
--shell-mode, -c
Runs the command inside of a shell. Uses /bin/sh
on UNIX and \cmd.exe
on Windows.
--report-summary
Read about this option in the run command docs