- Published on
Can I Use npx with pnpm?
- Authors
- Name
- Ripal & Zalak
Can I Use npx with pnpm?
npx
is a widely used tool in the npm ecosystem for running binaries and commands. If you’ve switched to pnpm
as your package manager, you might wonder whether you can use npx
alongside it or if there are alternatives. This guide will clarify how to achieve similar functionality with pnpm
.
npx
Key Uses of The two primary use cases of npx
are:
- Running Executables from Local Dependencies:
- Example:
npx jest
- Example:
- Running Executables from Packages You Want to Download Transiently:
- Example:
npx create-react-app my-app
- Example:
Let’s explore how these scenarios translate to pnpm
.
pnpm
Alternatives
The 1. Running Executables Inside Local Dependencies
If you want to run a binary from a locally installed dependency, use:
pnpm exec <command>
For example, to run jest
:
pnpm exec jest
Alternatively, you can omit exec
for simplicity:
pnpm jest
This approach works similarly to npx jest
in npm.
2. Running Executables from Remote Packages
For one-time usage of a remote package, the pnpm
equivalent of npx <package>
is:
pnpm dlx <package>
Example:
pnpm dlx create-react-app my-app
The dlx
command downloads the package temporarily, executes it, and then removes it after use. This is equivalent to the transient nature of npx
.
pnpx
Transitioning from pnpx
was a command similar to npx
, provided by pnpm
. However, as of recent versions of pnpm
, pnpx
has been deprecated and replaced by pnpm dlx
.
Why the Change?
The dlx
command is more aligned with modern use cases, offering:
- Better argument parsing.
- Streamlined execution of remote packages.
Practical Examples
Running Local Binaries
Install a local dependency that provides a binary:
pnpm add -D jest
Run the binary:
pnpm exec jest
Or, simply:
pnpm jest
Running a Remote Package
Execute a remote binary without installation:
pnpm dlx create-next-app my-next-app
Running Remote Scripts
Run an arbitrary package:
pnpm dlx @scaffold-eth/create
Frequently Asked Questions
npx
with pnpm
?
1. Can I use While npx
is part of npm, its functionality is better handled in pnpm
using pnpm exec
and pnpm dlx
.
pnpx
deprecated?
2. Why was pnpx
was replaced by pnpm dlx
for better clarity and improved argument handling. pnpm dlx
is now the recommended way to run remote binaries.
pnpm exec
and pnpm dlx
?
3. What are the key differences between pnpm exec
: Runs binaries from locally installed dependencies.pnpm dlx
: Downloads, executes, and removes a package temporarily.
pnpm exec
or pnpm dlx
?
4. Can I alias Yes, you can create aliases for convenience:
alias pexec="pnpm exec"
alias pdlx="pnpm dlx"
Conclusion
While npx
is not directly usable with pnpm
, the commands pnpm exec
and pnpm dlx
provide equivalent and more streamlined functionality. Transitioning to these commands ensures a smooth experience with pnpm
.