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

opt*_*fel 44 macos zsh npm vows

我在zsh中通过npm 安装誓言时遇到了一些问题.这就是我得到的.我尝试使用和不使用-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
Run Code Online (Sandbox Code Playgroud)

谢谢

Abd*_*UMI 98

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

并且将检测所有丢失的命令.

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

  • 这实际上是最好的解决方案,因为它导入所有命令! (8认同)
  • 我在 Mac OS Catalina 中的用户文件夹不包含此“.bash_profile”。我用搜索也找不到。更新“.zshrc”文件并重新打开终端后,其第一行是“没有这样的文件或目录:/Users/m...i/.bash_profile”。这可能是 Catalina 的重大变化吗? (5认同)
  • 这也适用于 Mac 用户:`source /Users/$USER/.bash_profile` 或者甚至更简单的 `source $HOME/.bash_profile` (3认同)
  • 对我来说,我必须来源〜/ .bashrc (2认同)
  • 我在Windows 10上使用WSL,并且必须添加`source /home/USERNAME/.profile'才能正常工作,但它确实具有魅力 (2认同)
  • 我必须获取 .bashrc 而不是 bash_profile。当我获取 bash_profile 时,我得到了大量在 zsh 中找不到的命令 (2认同)

And*_*erk 52

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

  • 在mac上,我将`export PATH ="$ HOME/.npm-packages/bin:$ PATH"添加到我的`〜/ .zshrc`中. (9认同)
  • 如果您没有通过 Homebrew 安装 Node.js 或者您不记得了怎么办?如何找到“usr/local/share/npm/bin”? (2认同)

小智 26

如果您已使用 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
Run Code Online (Sandbox Code Playgroud)


Sha*_*hah 23

转到终端并运行:nano .zshrc

注意:如果您没有此文件,您可以使用“touch”命令创建它: touch ~/.zshrc

将以下内容粘贴到包含“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
Run Code Online (Sandbox Code Playgroud)

现在只需点击^X,系统就会询问您是否要保存。说“是”并按回车键,如果提示您正在更改文件,则再次按回车键。保存后您可能需要重新启动终端。

如果您之前安装过node,请尝试使用node -v作为快速测试。


小智 15

Ubuntu 上,安装ZSH 后,并且之前在bash终端上安装了Node或其他软件包,

首先打开:

nano .zshrc

并取消注释第二行:

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

这对我有用,不需要写任何行,我认为这个选项在Mac 上也可用。


Aug*_*ose 14

对我来说,接受的添加答案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. 重新启动终端

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


小智 13

Mac 用户仅
假设您事先安装了 nvm,并且正确安装了 npm
(以下有关如何安装的分步指南:
为 Mac 用户安装 nvm )。

你需要:

找到“.zshrc”文件:

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

编辑“.zshrc”文件:

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

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


wih*_*rek 10

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

source $HOME/.profile
Run Code Online (Sandbox Code Playgroud)

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

无论如何,如果文件不存在,您可以简单地创建该文件并在文本编辑器中打开它。

touch ~/.profile
open -e !$
Run Code Online (Sandbox Code Playgroud)

附加值是使用单个文件来设置环境感觉很好,而不管使用的外壳如何。在 zsh 中加载 bash 配置文件感觉很尴尬。

引用 Cos 接受的答案/sf/answers/29081111/

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

遵循 Filip Ekberg 的研究/意见/sf/answers/29078731/

.profile是等价.bash_profile于根。我认为更改名称是为了让其他 shell(csh、sh、tcsh)也可以使用它。(你不需要一个作为用户)

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

(...) 一旦您创建了一个名为 的文件~/.bash_profile,您~/.profile将不再被读取。


Mik*_*mus 8

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

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


小智 7

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

nvm ls
Run Code Online (Sandbox Code Playgroud)

如果你没有得到任何版本,那就意味着我是对的 :) 然后你必须输入:

nvm install <node_version**>
Run Code Online (Sandbox Code Playgroud)

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

然后你将拥有 Node 并且你将能够使用npm 命令


Ali*_*sei 7

我解决了这个问题 brew upgrade node


小智 6

对于Mac用户:

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

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

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

source $HOME/.bashrc
Run Code Online (Sandbox Code Playgroud)

  • 我必须使用“source $HOME/.bash_profile”,但这是迄今为止最好的答案。实际上我已经为 bash 正常配置了 sdkman 和节点。我将节点模块添加到路径中,但不断收到“权限被拒绝”的消息。这解决了这个问题!回到编码! (3认同)

Odg*_*iiv 5

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