Question

I want to use nodemon for monitoring my node.js app's, then I execute the next line command:

npm install -g nodemon 

or

npm install nodemon -g

When I move to my app folder and try to to

nodemon app.js

The system tells to the next:

"nodemon 'is not recognized as an internal or external command, program or batch file.

Was it helpful?

Solution

Since node prefix is not in the PATH ENV variable , any of the globally installed modules are not getting recognized.

Please try this.

Open cmd prompt

npm config get prefix

append the resulting path to PATH env variable.

Now you should be able to run nodemon from any location.


This is what i have done on my local machine


C:\>npm config get prefix
C:\Users\username\AppData\Roaming\npm

C:\>set PATH=%PATH%;C:\Users\username\AppData\Roaming\npm;

C:\>nodemon
 31 Jul 22:30:29 - [nodemon] v0.7.8
 31 Jul 22:30:29 - [nodemon] to restart at any time, enter `rs`
 31 Jul 22:30:29 - [nodemon] watching: C:\
 31 Jul 22:30:29 - [nodemon] starting `node `
 ^CTerminate batch job (Y/N)? Y

OTHER TIPS

I also got same error as you with this command:

$ sudo npm install -g nodemon

I just really switched as "root" and then just ran:

$  npm install -g nodemon

I think npm has a bug to not work with sudo, but it works fine when you are really "root".

Single line solution In terminal

npm install -g --force nodemon

There is a problem with integrated terminal of vs code. when I try in external terminal nodemon works. But in integrated terminal, it gives bash: nodemon: command not found error.

so here is my solution

install nodemon as development dependency

npm install --save-dev nodemon

and change package.json of the project

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "nodemon": "./node_modules/.bin/nodemon"
  },

to run nodemon type into terminal in project folder

npm run nodemon

Mine was I went to Control Panel and Repair the NodeJS app and tried to install again with npm install -g nodemon and now it works. Maybe you mixed up or something with Node.

check out here :-

npm install -g nodemon

and then run

$nodemon server.js

Linux users: I would highly suggest not using sudo or root user to install npm packages. This could become a security problem especially on a production system. I would also suggest not trying to hack permissions as I have hosed an Ubuntu system by not reading the warning on the npmjs procedure.

It would be better to configure npm to use a folder owned by the current user. Simplest approach

wget https://raw.githubusercontent.com/pcnate/npm-configure/master/add-npm-global.sh -q -O - | bash
npm install -g nodemon

Or get the code script on github to see how it works

See details on the npmjs website

On Windows, I was having issues installing nodemon directly from the Command line. Downloaded Cygwin and I was able to npm install nodemon instantly.

You can add path to node packages in System Path variable. Add "C:\Users\UserName\AppData\Roaming\npm".

Even after adding path to System Path variable it did not work for me using nodemon. Then i used npm run serve to run the server. now it is up and running. Btw i am a windows user

This command worked for me.

If your global installation didn't work then install it in your development dependency.

npm install --save-dev nodemon

Updated

After Path settings we also need to type in the following commands

Set-ExecutionPolicy Unrestricted

what this command enables running scripts on the system

I think some of us can't reach global environments without admin privileges. If you tried everything and it's still not working, try running VSCode as administrator. It worked out for me.

had the same problem otherwise was just working fine a day ago. Very simple fix first check if nodemon exists on your system globally or not

To check

npm list -g --depth=0

If you don't see then install it npm install -g nodemon (g stands for globally)
If you see it still doesn't work then you need to configure environment variable I use Windows OS. On Windows navigate to

Control panel>System>Advanced System Settings>Environment Variables>double-click on PATH

Now check if you have this PATH C:\Users\yourUsername\AppData\Roaming\npm
If not, you will see some existing paths, just append to it separating with semicolon. That's it! Worked for me. For me node was installed in C:..\Roaming\npm and for you if the PATH is different, you will put in whatever applcable.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top