在zsh中安装npm后找不到命令


78

我在zsh中通过npm安装誓言时遇到了一些问题。这就是我得到的。我尝试使用-g选项和不使用-g选项安装它。你知道这是怎么回事吗?

[❤  ~/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

谢谢


您是否尝试过通过rehash刷新shell的路径缓存?
布赖恩·阿格纽

执行

Answers:


76

如果使用Homebrew安装了Node.js,则可以在中找到npm二进制文件/usr/local/share/npm/bin。您应该确保此目录位于PATH环境变量中。因此,在~/.zshrc文件中添加export PATH=/usr/local/share/npm/bin:$PATH


21
在Mac上,我将添加export PATH="$HOME/.npm-packages/bin:$PATH"~/.zshrc
丹·桑德兰

$ HOME / .npm-global / bin为我使用了npm v6.9.0
Kevin Hooke

146

source /home/YOUUSERNAME/.bash_profile在开头添加~/.zshrc

并且所有丢失的命令将被检测到。

对于Mac用户:添加source /Users/YOUUSERNAME/.bash_profile


7
对我来说,我不得不去看〜/ .bashrc
保皇党

3
我在Windows 10上使用WSL,并且必须添加`source /home/USERNAME/.profile'才能使其正常工作,但它确实很有魅力
路加

1
我必须来源.bashrc而不是bash_profile。当我获得
bash_profile的

1
我在Mac OS Catalina中的用户文件夹不包含此文件夹.bash_profile。我也无法通过搜索找到它。更新.zshrc文件并重新打开终端后,其第一行是no such file or directory: /Users/m...i/.bash_profile。这可能是Catalina的重大改变吗?
MQoder

这也适用于Mac用户:source /Users/$USER/.bash_profile甚至可能更容易source $HOME/.bash_profile
Glenn85

17

对于Mac用户:

除了以下内容:nvm,iterm2,zsh

我发现使用.bashrc而不是.profile.bash_profile引起的问题要少得多。

只需将后者添加到我的.zshrc文件中:

source $HOME/.bashrc

2
我不得不使用,source $HOME/.bash_profile但这是最好的答案。我实际上已经将sdkman和node正常配置为bash。我将节点模块添加到路径中,但一直保持“权限被拒绝”。这解决了这个问题!回到编码!
Brooks DuBois

12

Mac用户仅
假设您先安装了nvm,然后正确安装了npm
(有关如何安装的逐步指南,在以下
内容中为Mac用户安装nvm ):

你需要:

找到“ .zshrc”文件:

  • 打开终端。
  • 键入open ~访问自己的主目录。
  • 按下Cmd + Shift + .以显示Finder中的隐藏文件。
  • 找到.zshrc

编辑“ .zshrc”文件:

  • 添加:source /Users/_user_Name_/.bash_profile在文件顶部(其中_user_Name_代表您的用户。

  • 保存文件,然后关闭“终端”窗口。


即使这看起来像是骇客,但我发现这是在Catalina升级后将我所有预安装的东西从bash引入zsh的好方法。
Maxim V. Pavlov

对我来说,这就是答案,因为仅source /Users/_user_Name_/.bash_profile在当前会话期间才持续运行。
尼诺·斯科帕克(NinoŠkopac),

11

Ubuntu上,在安装ZSH之后,主要是在bash终端上安装Node或其他软件包,

首次开放:

nano .zshrc

并取消注释第二行:

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

这对我有效,并且无需写任何行,我认为Mac也可以使用此选项。


7

针对MacOS的用户:考虑使用.profile 替代.bash_profile。您可能仍需要手动将其添加到~/.zshrc

source $HOME/.profile

请注意,默认情况下没有此类文件!引用slhck https://superuser.com/a/473103

无论如何,您可以简单地创建文件(如果该文件不存在),然后在文本编辑器中将其打开。

touch ~/.profile
open -e !$

附加的价值是,不管使用什么外壳,使用一个文件来设置环境都是好人。在zsh中加载bash配置文件感到尴尬。

引用Cos接受的答案https://stackoverflow.com/a/415444/2445063

.profile只是由最初使用的登录脚本文件名/bin/sh。bash通常与向后兼容/bin/sh.profile如果存在,将读取

根据Filip Ekberg的研究/意见https://stackoverflow.com/a/415410/2445063

.profile等价.bash_profile于根。我认为名称已更改为允许其他shell(csh,sh,tcsh)也使用它。(您不需要一个用户)

回到slhck,有关bash的注意事项

(…)创建名为的文件后~/.bash_profile~/.profile将不再读取您的文件。


只需在这里加我的10美分,别忘了这样做并完全关闭终端机。然后再次打开它,它应该可以工作。在退出所有内容并重新打开之前,没有一种解决方案对我有用。完善!
filipe.costa01 '19

1
作为Ubuntu用户,对我来说最好的答案。我只需要将.profile文件来源到我的.zshrc文件中即可。只需source ~/.profile.zshrc文件的开头添加并重新加载,就可以了。
Kayote19年

7

如果您使用nvm进行添加,请将以下内容添加到您的.zshrc文件中,然后重新启动终端,因为zsh shell无法检测到该文件的二进制文件,因此我们指定了路径

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

6

另一件事,试图为我的答案是,取消对首export~/.zshrc

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


6

以我的拙见,首先,您必须确保已安装任何类型的Node版本。对于该类型:

nvm ls

如果没有任何版本,则表示我是正确的:)然后,您必须输入:

nvm install <node_version**>

**您可以在中找到的实际版本 Node网站上

然后,您将拥有Node并可以使用npm命令


谢谢@daxtersky。那正是我所需要的。
华盛顿·苏亚雷斯·布拉加

这也为我做到了。node --version与nvm ls运行命令后的情况有所不同。
Nelles

5

对于仍然有问题的任何人。不要忘记注销并再次登录。


这是Mac OS Catalina上的解决方案。
David Schumann

你能澄清一下吗?我在哪里登录和注销?天哪,我的Facebook帐户?我的instagram帐户?我的推特帐户?
noogui

您的计算机ofc
Odgiiv

1

就我而言,我使用NVM安装了节点,并且在安装z Shell之后,node和nvm命令无法正常工作。所以对我有用的是使用此命令再次安装nvm:

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

上面的命令再次安装了nvm,因为已经安装了节点,它会自动将节点路径添加到.zshrc文件中,并且一切正常。




0

对我来说,添加接受的答案export PATH=/usr/local/share/npm/bin:$PATH,以.zshrc没有工作。我尝试添加NVM_DIR也解决了我的问题。

  1. 尝试 vi .bashrc
  2. 您会发现类似以下的行。复制它。

    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. 将复制的内容粘贴到 .zshrc文件

  4. 重启终端

我希望这能解决您的问题。


0

对于MAC:我尝试了上述方法中的某些方法,但无济于事,无法进行任何操作。

我的确安装了BREW,因此尽管这不是最好的方法,但使用zsh还是可以:

  1. sudo chown -R $(whoami)/ usr / local / share / man / man8 (用于brew访问)
  2. brew更新&& brew安装npm (我已经安装了节点)
  3. npm -v (确认安装)
  4. nano〜/ .zshrc(用于清空文件更改并保存)

这对我有用。希望这对某人有帮助。#1困扰着我,但我现在会忍受。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.