Last updated: Apr 4, 2024
Reading timeยท4 min
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 the `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 a 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 a 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.
The error "'pm2' is not recognized as an internal or external command,
operable program or batch file" occurs when we use the pm2
module without
installing it first. To solve the error, run the npm install pm2 -g
command.
Open your terminal in your project's root directory (where your package.json
file is) and run the following command.
# ๐๏ธ install `pm2` globally npm install -g pm2 pm2 start app.js pm2 list
pm2
, run CMD as an administrator and rerun the command.To open CMD as an administrator:
Click on the Search bar and type CMD.
Right-click on the Command Prompt application and click "Run as administrator".
npm install -g pm2 pm2 start app.js pm2 list
Alternatively, you can prefix any pm2
command with npx
.
# ๐๏ธ use the `npx` prefix npx pm2 start app.js # ๐๏ธ list all running applications npx pm2 list
If you get an error that npx
is not installed, install it by running the
following command.
# ๐๏ธ for Windows npm install -g npx # ๐๏ธ for macOS or Linux sudo npm install -g npx
npx
, run CMD as an administrator and rerun the command.If the error persists, add npm
to your PATH environment variable manually.
npm
to your PATH environment variableTo add npm
to your PATH environment variable:
npm
directory is most likely located under
%USERPROFILE%\AppData\Roaming\npm
or in other words,
C:\Users\YOUR_USER\AppData\Roaming\npm
.%USERPROFILE%\AppData\Roaming\npm # ๐๏ธ same as below (make sure to replace YOUR_USER) C:\Users\YOUR_USER\AppData\Roaming\npm
If you can't find it, run the npm config get prefix
command.
npm config get prefix
Add the path to npm
and click on "OK" twice to confirm.
Close your Command prompt application and then reopen it.
You might also have to restart your PC, but that's not always necessary.
pm2
command after you've restarted your shell.