Borislav Hadzhiev
Thu Mar 10 2022·3 min read
Photo by Yoann Boyer
Use npx
to solve the error "pm2: command not found", e.g.
npx pm2 start app.js
or install the package globally by running
npm install -g pm2
to be able to use the command without the npx
prefix.
The fastest way to solve the error is to use the npx
command.
# 👇️ use npx prefix npx pm2 start app.js # 👇️ list all running applications npx pm2 list
Alternatively, you can install pm2
globally.
# 👇️ install pm2 globally npm install -g pm2 pm2 start app.js pm2 list
pm2
fails, you might have to run the command prefixed with sudo
.# 👇️ if you got permissions error sudo npm install -g pm2 pm2 start app.js pm2 list
For other examples of commands, refer to the
official npm page of the pm2
package.
If that doesn't help, run the following command:
npm config get prefix
The command will show you the path where npm
puts your globally installed
packages. The global packages will be in the bin
directory at the specified
path.
Look at the PATH environment variable on your operating system and add the
path that the npm config get prefix
command outputs, if it's not already
there.
If that didn't work, try to add the path to the bin
folder (from
npm config get prefix
) to your PATH environment variable and restart your
terminal.
For example, on macOS, you can update your path with the following command:
# make sure path matches with npm config get prefix export PATH=/usr/local/share/npm/bin:$PATH
And on Windows, the output of the npm config get prefix
command will look
something like: C:\Users\Your_User_Name\AppData\Roaming\npm
.
Edit the environment variable on your machine and add the specified path (replacing the placeholder with your username).
If you are on linux, you can add the output from the npm config get prefix
command to your .bashrc
file.
# 👇️ make sure to update the path with the output # from the command export PATH="/usr/local/share/npm/bin:$PATH"
If that doesn't help try to reinstall Node.js on your machine and then install
pm2
globally by running npm install -g pm2
.
# 👇️ install pm2 globally npm install -g pm2 pm2 start app.js pm2 list
pm2
fails, you might have to run the command prefixed with sudo
.# 👇️ if you got permissions error sudo npm install -g pm2 pm2 start app.js pm2 list
Alternatively, you can see how you can fix the permissions error on this page in the official npm docs.