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.