可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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
回答1:
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
.
回答2:
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
回答3:
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
回答4:
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
回答5:
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
).
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.
回答6:
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.
回答7:
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
回答8:
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.
回答9:
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.
回答10:
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.
- Try
vi .bashrc
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
Paste the copied content to .zshrc
file
- Restart the terminal
I hope this solves your issue.
回答11:
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