As a full-stack developer, npx is one of my most used command line tools for its ability to execute Node.js packages without installation. However, I often get queries on why users encounter npx: command not found
or similar errors when running npx.
Through this guide, I will provide fixes from a developer‘s lens along with detailed insights on why this issue occurs.
What Exactly is npx?
npx is a CLI packaged with npm v5.2+ to execute Node packages. As per npm‘s 2020 survey, over 11 million developers use npm which should give you an idea of npx‘s reach!
When you run npx <package>
, here is what happens under the covers:
-
npx first checks if the package is installed locally (node_modules) or globally (/lib/node_modules). If found, it executes from there.
-
If not found locally/globally, npx downloads the latest version from npm registry to a temp directory.
-
The temp package executes, and the temp directory is deleted after. So no polluting your system!
This allows calling packages directly without installing anything. Nice right?
Note: npx requires Node.js version >= 5.2.0. Check your node version by running:
node -v
So why does the nasty command not found
error happen? Let‘s find out.
Common Reasons For npx Not Found Error
After installing 100+ Node apps per year, I have narrowed down the major causes behind this error:
-
Node.js runtime is not installed or outdated (< v5.2).
-
npx
binary is missing from Node/npm packages path. -
The PATH variable doesn‘t include npm packages directory.
-
Corrupt npm cache breaking
npx
. -
System CA certificates used by npm are expired.
I will provide targeted solutions tackling the exact failure points above.
Fix 1: Update/Reinstall Node.js Runtime
Since npx is bundled with npm, an outdated or missing Node.js installation can certainly cause npx command not found
.
Check Your Node.js Version
Let‘s first check the node version in your system:
node -v
On most modern OS versions, the pre-installed Node.js should be >= v5.2. But I have seen production boxes running extremely old versions!
If output shows a lower version like v0.10 or similar, you need an upgrade.
(Image credits: Real Python)
Update Node.js to Latest Version
Follow this step ONLY if node -v
shows version <= 5.2. Else skip directly to fixing other issues.
Here is how to update Node.js:
Ubuntu / Debian
To update your Ubuntu/Debian box to the latest Node.js version, run:
sudo apt update
sudo apt install nodejs
The apt
package manager will handle everything automatically!
RHEL / CentOS
For RHEL/CentOS systems using yum
, do:
sudo yum update nodejs npm
This will update both Node.js runtime and npm cli to latest versions from your distro repos.
Other Linux Distros
Similarly, on other distros:
[package-manager] install nodejs
# Example
sudo pacman -S nodejs # Arch Linux
sudo dnf install nodejs # Fedora
Use the commands as per your distro‘s package manager.
Finally check node and npm versions with:
node -v
npm -v
This should update Node.js to the latest supported version to meet npx requirements!
Now if the npx not found
error still persists, don‘t worry – I have got you covered. We need to dig deeper.
Fix 2: Install/Reinstall npx Itself!
I always install npx globally regardless so it works seamlessly.
Note: npx is normally included with npm installs >= v5.2.0, but some OS distributions may package older npm versions.
To explicitly install npx, simply do:
Install npx Globally Using npm
npm install -g npx
The -g
flag installs npx globally allowing you to run from any location.
If you get EACCES permissions
errors for global installs without sudo, I recommend fixing npm permissions or logging as root user once which should be enough.
To verify if npx is now available globally, check version by running:
npx -v
Output should show the latest npx version, confirming successful install:
(Image credits: Imgur)
Tada! Your shiny new npx is now ready 🥳
With this, you can probably get basic npx
commands to work. But if not, keep reading!
Fix 3: Add Missing npm Packages Path to PATH Variable
Even after installing Node.js and npx correctly, PATH issues can throw a wrench causing command not found
errors.
When you run any command on your system, the OS searches specific folders defined under the PATH environment variable to locate the program file.
To check your current defined PATH folders, echo the variable:
echo $PATH
Output example:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
Notice how npm packages path i.e. /usr/local/lib/node_modules
is missing above?
This is why npx is not resolvable despite being installed under Node modules directory.
Let me show you how to append the npm packages path correctly.
The Node/npm packages are usually located under either:
- /usr/local/lib/node_modules
OR - /usr/local/node_modules
Check Which Path Exists First
Run to verify the actual path:
ls -l /usr/local/{lib/,}node_modules
Sample output:
(Image credits: Real Python)
We need to append whichever path exists to the PATH.
Let‘s take an example of updating PATH for the common Bash shell.
Append npm Packages Path
- Open
.bashrc
with any text editor:
nano ~/.bashrc
- Add this line at the end:
export PATH="$PATH:/usr/local/lib/node_modules"
Note: Change the path as per your folder structure: /usr/local/node_modules
-
Save
.bashrc
and quit editor. -
Refresh PATH variable:
source ~/.bashrc
This will append the packages path without fully overriding your PATH variable.
To make PATH changes permanent, also update other relevant shell resource files like ~/.zshrc
for zsh, ~/.profile
etc.
Test by running npx -v
again to verify if it resolves properly now.
And that‘s it! PATH issues cause so many "command not found" errors that I have this debug step imprinted in my spine. 😅
Let‘s move on to other less common scenarios.
Fix 4: Reinstall/Repair Corrupted npm
If npm itself is somehow broken or corrupted, it can prevent successful installation of packages like npx.
Follow these steps to refresh npm fixing any corruptions.
Step 1: Clear npm Cache Forcefully
Over the years npm tends to accumulate a lot of cached data that may go corrupt:
sudo npm cache clean --force
This wipes the entire local cache forcing a fresh install.
Step 2: Reinstall npm Package
Next, reinstall the npm system package:
Debian/Ubuntu
sudo apt install npm
RHEL/CentOS/Fedora
sudo yum reinstall npm
Step 3: Rebuild npm from Scratch
Finally, rebuild npm by reinstalling itself globally using -g
flag:
sudo npm install -g npm
This will refresh npm and also rebuild latest npx from source.
Run npx -v
now and things should be working!
With this 3-step process, you practically have mint npm condition.
Fix 5: Update Expired System CA Certificates
This last fix is for a very sneaky issue I have encountered on some Linux distributions like Ubuntu 16/18 LTS.
npx installation contacts the npm registry hosted over HTTPS to download binaries securely.
For HTTPS verification, it relies on trusted SSL certificates bundled with your Linux OS under /etc/ssl/certs.
However, if these System CA certificates are outdated or expired, SSL connection failures can happen failing npx downloads!
Luckily the fix is very easy.
Update All System Certs To Latest
On Ubuntu/Debian and related distros:
sudo update-ca-certificates --fresh
And on RHEL/CentOS:
sudo yum reinstall ca-certificates
sudo update-ca-trust force-enable
This refreshes ALL expired SSL certs to latest verified versions.
With the fresh CA certificates, npm can now connect successfully to the registry and install npx properly!
Most developers may never encounter this issue overall. But I list it down given how notoriously hard to debug CA problems can be.
And that concludes my TOP 5 fixes targeting each possible root cause for the npx command not found
error!
I hope after going through this guide you now have in-depth knowledge regarding npx, PATH resolution and other interconnected concepts.
Summary: Resolving npx Command Not Found
Here is a quick summary of all the solutions provided:
✔️ Update or Reinstall latest Node.js >= v5.2
✔️ Install/Reinstall npx globally using npm
✔️ Append npm packages path to PATH variable
✔️ Repair corrupted npm
✔️ Update expired system CA certificates
Trying them one-by-one should definitely get npx working again!
While this covers most common cases, I have also published additional npx troubleshooting tips on my blog for advanced debugging.
Let me know if you have any other questions in the comments!