pnx
Aliases: pnpm dlx, pnpx
Busca um pacote do registro sem instalá-lo como uma dependência, faz o hotload (recarrega automaticamente) e executa qualquer comando padrão que o binário expõe.
For example, to use create-vue anywhere to bootstrap a Vue project without
needing to install it under another project, you can run:
pnx create-vue my-app
This will fetch create-vue from the registry and run it with the given arguments.
Você também pode especificar qual versão exata do pacote você gostaria de usar:
pnx create-vue@next my-app
The catalog: protocol is also supported, allowing you to use versions defined in your workspace catalogs:
pnx shx@catalog:
Running a package manager or a runtime
Added in: v12.0.0-rc.6 (pnpm v12 only)
Naming one of the package managers pnpm provisions (npm, yarn, bun), or a runtime (node, deno, bun), provisions the real thing instead of installing the npm package that shares its name:
pnx yarn@4 install
pnx npm@11 ci
pnx bun@1.3.0 install
pnx node@22 --version
Those npm packages are either a different line of the tool or a wrapper that downloads it, so this is what naming them was always meant to do: pnx yarn@4 used to fail with a missing version, since Yarn 4 is published as @yarnpkg/cli-dist, and pnx node@22 used to run a wrapper that downloads a Node.js build rather than that release itself.
A specifier that locates a package rather than asking for a released version installs what it names, unchanged:
pnx yarn@npm:yarn@1.22.22
pnx yarn@yarnpkg/berry
--package naming a package manager picks which of its commands to run:
pnx --package npm@11 npx create-something
Opções
--package <name>
O pacote a ser instalado antes de executar o comando.
Exemplo:
pnx --package=@pnpm/meta-updater meta-updater --help
pnx --package=@pnpm/meta-updater@0 meta-updater --help
Vários pacotes podem ser fornecidos para instalação:
pnx --package=yo --package=generator-webapp yo webapp --skip-install
--allow-build
Added in: v10.2.0
A list of package names that are allowed to run postinstall scripts during installation.
Exemplo:
pnx --allow-build=esbuild my-bundler bundle
The actual packages executed by dlx are allowed to run postinstall scripts by default. So if in the above example my-bundler has to be built before execution, it will be built.
--shell-mode, -c
Executa o comando em um shell. Uses /bin/sh on UNIX and \cmd.exe on Windows.
Exemplo:
pnx --package cowsay --package lolcatjs -c 'echo "hi pnpm" | cowsay | lolcatjs'
--silent, -s
Apenas a saída do comando executado é exibida.
Security and trust policies
Since v11.0.0, pnx (and its pnpm dlx / pnpx aliases) honors the project-level security and trust policy settings when resolving and fetching the requested package:
minimumReleaseAge,minimumReleaseAgeExclude,minimumReleaseAgeStricttrustPolicy,trustPolicyExclude,trustPolicyIgnoreAfter
This means pnx will refuse to execute freshly published or insufficiently trusted packages the same way a regular pnpm install would.