64
votes

Node JS and NPM were working well before. Recently I have re-installed the Node JS, NPM and the problem started. After I install a module like an example npm install -g bower, the module gets installed successfully but bower -v gives

'bower' is not recognized as an internal or external command, operable program or batch file.

I have checked the installation path C:\Users\XXXXX\AppData\Roaming\npm\node_modules has all the old installed modules. I have tried to uninstall them and reinstall the modules, but still, I am getting the same error.

Even I have deleted the entire folder and installed all the modules again but the result is the same.

I don't know why I am getting this error after reinstalling NodeJS NPM.

7

7 Answers

88
votes

I had this same problem and fixed it by adding the 'npm' directory to my PATH:

Right-click 'My Computer' and go to 'Properties > Advanced System Settings > Environment Variables'.

Double click on PATH under the 'User variables for Username' section, and add C:\Users\username\AppData\Roaming\npm obviously replacing 'username' with yours. Based on the comments below, you may need to add it to the top/front of your path.

Restart your console window or IDE and you should get a response from the bower command.

39
votes

I had the same problem as well but installed it globally so the other answers didn't work.

The nodeJS install may not have added npm to your PATH so it's not recognised globally.

Firstly: To figure out if you installed globally or for current user

If there is an npm folder at C:\Users\(your username)\AppData\Roaming\npm you've installed it for the current user

If there is an npm folder at C:\Program Files\nodejs\node_modules\npm or C:\Program Files(x86)\nodejs\node_modules\npm you've installed it globally for all users to access

Secondly: To add it to the Path

  1. Right-click My Computer
  2. Click on properties down the bottom
  3. Click on Advanced System Settings in the left bar
  4. Click on Environment Variables down the bottom

Now depending on whether you installed globally or for the current user will determine which PATH variable you are updating and with what path location

Local

  1. Double click on PATH under 'user variables' section
  2. Add C:\Users\(your username)\AppData\Roaming\npm without the quotes

Global

  1. Double click on PATH under 'user variables' section
  2. Add C:\Program Files\nodejs without the quotes (or with (x86))

Finally

Close all terminals or programs that aren't able to find npm and open them up again

6
votes

Run npm config get prefix and check the correct npm path first and append the output to the PATH using command or adding manually.

npm config get prefix
C:\mydev\tools\npm\npm

set PATH=%PATH%;C:\mydev\tools\npm\npm

4
votes

If the package is successfully installed and still shows the message "'npm' is not recognized as an internal or external command, operable program or batch file."

  1. Click windows start button.
  2. Look for "ALL APPS", you will see Node.js and Node.js Command prompt there.
  3. You can run the Node.js Command prompt as administrator and soon as its run it will show the message "Your environment has been set up for using Node.js 6.3.0 (x64) and npm."
1
votes

You should probably check if your node/bin directory is in your PATH variable. Look for it where you've been installing these global modules.

I'm not on windows, so I can't tell you the exact command, but you can check these variables navigating to [Control Panel -> System -> Advanced -> Environment Variables] or something like this.

0
votes

In my case the npm folder was already in the PATH variable.

If after trying everything else, you also still can't make it work, try to delete the folder from the PATH variable and put it at the beginning of the list.

0
votes

I had the same issue in Windows

Two solution worked for me

  1. If you are using bash shell, use npm run
    Example : $ npm run ng --version

  2. Use Windows power shell or command prompt