Command not found after npm install in zsh

MacosZshNpmVows

Macos Problem Overview


I'm having some problems installing vows via npm in zsh. Here's what I get. I tried installing it with and without the -g option. Do you have any idea what's wrong here?

[❤  ~/Desktop/sauce-node-demo:master] npm install -g vows
npm http GET https://registry.npmjs.org/vows
npm http 304 https://registry.npmjs.org/vows
npm http GET https://registry.npmjs.org/eyes
npm http GET https://registry.npmjs.org/diff
npm http 304 https://registry.npmjs.org/eyes
npm http 304 https://registry.npmjs.org/diff
/usr/local/share/npm/bin/vows -> /usr/local/share/npm/lib/node_modules/vows/bin/vows
vows@0.6.4 /usr/local/share/npm/lib/node_modules/vows
├── eyes@0.1.8
└── diff@1.0.3
[❤  ~/Desktop/sauce-node-demo:master] vows
zsh: command not found: vows

Thanks

Macos Solutions


Solution 1 - Macos

add source /home/YOUUSERNAME/.bash_profile at the beginning of ~/.zshrc

And all missing commands will be detected.

For Mac users : add source /Users/YOUUSERNAME/.bash_profile

Solution 2 - Macos

If you installed Node.js using Homebrew, npm binaries can be found in /usr/local/share/npm/bin. You should make sure this directory is in your PATH environment variable. So, in your ~/.zshrc file add export PATH=/usr/local/share/npm/bin:$PATH.

Solution 3 - Macos

If you have added using nvm please add the following to your .zshrc file and restart the terminal since the binaries of the file are not being detected by zsh shell we specify the path

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

Solution 4 - Macos

For Mac users:

Alongside the following: nvm, iterm2, zsh

I found using the .bashrc rather than .profile or .bash_profile caused far less issues.

Simply by adding the latter to my .zshrc file:

source $HOME/.bashrc

Solution 5 - Macos

Mac users only
assuming you installed nvm prior, and npm correctly
(step-by-step guide below on how to install it:
[install nvm for Mac users][1] [1]: https://stackoverflow.com/questions/24585261/nvm-keeps-forgetting-node-in-new-terminal-session/57024034#57024034 ).

you need to:

Find the '.zshrc' file:

  • Open Terminal.
  • Type open ~ to access your home directory.
  • Press Cmd + Shift + . to show the hidden files in Finder.
  • Locate the .zshrc.

Edit the '.zshrc' file:

  • add: source /Users/_user_Name_/.bash_profile to the top of the file (where user_Name stands for your user.

  • Save the file, and close the Terminal window.

Solution 6 - Macos

On Ubuntu, after installing ZSH, and prevously on the bash terminal installed Node or other packages,

>First open:

nano .zshrc

>And uncomment the second line:

export PATH=$HOME/bin:/usr/local/bin:$PATH

This works for me, and without writting any line, and I think this option is available on Mac too.

Solution 7 - Macos

for macOS users: consider using .profile instead of .bash_profile. You may still need to manually add it to ~/.zshrc:

source $HOME/.profile

Note that there is no such file by default! Quoting slhck https://superuser.com/a/473103: > Anyway, you can simply create the file if it doesn't exist and open it in a text editor. > > touch ~/.profile > open -e !$

The added value is that it feels good man to use a single file to set up the environment, regardless of the shell used. Loading a bash config file in zsh felt awkward.

Quoting an accepted answer by Cos https://stackoverflow.com/a/415444/2445063 > .profile is simply the login script filename originally used by /bin/sh. bash, being generally backwards-compatible with /bin/sh, will read .profile if one exists

Following Filip Ekberg's research / opinion https://stackoverflow.com/a/415410/2445063 > .profile is the equivalent of .bash_profile for the root. I think the name is changed to let other shells (csh, sh, tcsh) use it as well. (you don't need one as a user)

getting back to slhck, a note of attention regarding bash: > (…) once you create a file called ~/.bash_profile, your ~/.profile will not be read anymore.

Solution 8 - Macos

Another thing to try and the answer for me was to uncomment the first export in ~/.zshrc:

# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH

Solution 9 - Macos

I solved this by brew upgrade node

Solution 10 - Macos

Go to your terminal and run: nano .zshrc

NOTE: If you don't have this directory, you can create it using mkdir command: mkdir ~/.zshrc

Paste the following anywhere below the line containing "export ZSH":

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

Now simply hit ^X and you will be asked if you would like to save. Say 'yes' and hit return, then hit return again if it says you are changing a file. You may need to restart your terminal after saving.

Try using node -v as a quick test if you've installed node before.

Solution 11 - Macos

In my humble opinion, first, you have to make sure you have any kind of Node version installed. For that type:

nvm ls

And if you don't get any versions it means I was right :) Then you have to type:

nvm install <node_version**>

** the actual version you can find in Node website

Then you will have Node and you will be able to use npm commands

Solution 12 - Macos

For me the accepted answer for adding export PATH=/usr/local/share/npm/bin:$PATH to .zshrc didn't work. I tried adding the NVM_DIR as well which solved my issue.

  1. Try vi .bashrc

  2. You will find a line like the following. Copy it.

    export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

  3. Paste the copied content to .zshrc file

  4. Restart the terminal

I hope this solves your issue.

Solution 13 - Macos

For anyone who is still having problem. Don't forget to logout and login again.

Solution 14 - Macos

In my case, reinstalling node solved the issue. Anyone can install node via below website:

> https://nodejs.org/en/download/

Solution 15 - Macos

In my case, i installed node with NVM and after installing z Shell, node and nvm command didn't worked. So what worked for me was installing nvm again with this command :

wget https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
sudo zsh install.sh

Above commands installed nvm again, since node was already installed, it added the node path automatically in .zshrc file and everything worked.

Solution 16 - Macos

FOR MAC: I tried some of the above but to no avail, could not get anything to work.

I did have BREW INSTALLED, so although this not be the best approach, with zsh, I did:

  1. sudo chown -R $(whoami) /usr/local/share/man/man8 (for brew access)
  2. brew update && brew install npm (I had had node installed)
  3. npm -v (to confirm install)
  4. nano ~/.zshrc (to empty file changes and save)

This worked for me. Hope this helps someone. #1 bothers me, but I will live with for now.

Solution 17 - Macos

Using Node v12+ on Mac Catalina, global dependencies are showing up in /$HOME/.npm-global/bin

Adding

export PATH="$HOME/.npm-global/bin:$PATH"

To ~/.bash_profile to keep everything in one place, and then adding

source $HOME/.bash_profile

To ~/.zshrc if it's not already there will do the trick. No need to logout and back in, just restart terminal.

Solution 18 - Macos

I had the same problem while installing Vercel CLI.

In my case, install with sudo.

example: sudo npm i -g vercel

Solution 19 - Macos

It works for me in zsh. Try nvm install --latest-npm

Solution 20 - Macos

Just writing this in my terminal fixed the issue. Note that I had to write it separately in my project folder.

export PATH="$HOME/.npm-packages/bin:$PATH"
export PATH="$HOME/.node/bin:$PATH"

Source: https://cloudlinuxtech.com/npm-command-not-found-fix/

Solution 21 - Macos

I think the problem is more about the ZSH completion.

You need to add this line in your .zshrc:

zstyle ':completion:*' rehash true

If you have Oh-my-zsh, a PR has been made, you can integrate it until it is pulled: https://github.com/robbyrussell/oh-my-zsh/issues/3440

Solution 22 - Macos

For OSX Catalina users

brew install node@14

I'm using node 14 cause angular won't support latest version (Don't know why).. Then

echo 'export PATH="/usr/local/opt/node@14/bin:$PATH"' >> ~/.zshrc

Solution 23 - Macos

Sometimes simple things work. Uninstalling node and installing again worked for me.

brew uninstall node
brew install node
npm update

Solution 24 - Macos

In my case nvm seemed to have forgotten the global default - maybe some install i did since first adding it.

Simply re-aliasing did the trick:

nvm alias default [insert version number here]

Open a new terminal in order for this to take effect

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionoptikfluffelView Question on Stackoverflow
Solution 1 - MacosAbdennour TOUMIView Answer on Stackoverflow
Solution 2 - MacosAndrew FerkView Answer on Stackoverflow
Solution 3 - MacosAman ShuklaView Answer on Stackoverflow
Solution 4 - MacosTim.GView Answer on Stackoverflow
Solution 5 - MacosEden SharvitView Answer on Stackoverflow
Solution 6 - MacosJesus RomeroView Answer on Stackoverflow
Solution 7 - MacoswiherekView Answer on Stackoverflow
Solution 8 - MacosMikeumusView Answer on Stackoverflow
Solution 9 - MacosAliakseiView Answer on Stackoverflow
Solution 10 - MacosShahView Answer on Stackoverflow
Solution 11 - MacosdaxterskyView Answer on Stackoverflow
Solution 12 - MacosAugustin JoseView Answer on Stackoverflow
Solution 13 - MacosOdgiivView Answer on Stackoverflow
Solution 14 - MacosshubhamView Answer on Stackoverflow
Solution 15 - MacosFarhanView Answer on Stackoverflow
Solution 16 - Macosuser1889992View Answer on Stackoverflow
Solution 17 - MacosJoshua TerrillView Answer on Stackoverflow
Solution 18 - MacosR.M. RezaView Answer on Stackoverflow
Solution 19 - MacosAnja IshmukhametovaView Answer on Stackoverflow
Solution 20 - MacosdemiculusView Answer on Stackoverflow
Solution 21 - MacosCreakView Answer on Stackoverflow
Solution 22 - MacosArchil LabadzeView Answer on Stackoverflow
Solution 23 - MacosJyoti DuhanView Answer on Stackoverflow
Solution 24 - MacosJames TrickeyView Answer on Stackoverflow