118

我在 zsh 中通过 npm安装vows时遇到一些问题。这就是我得到的。我尝试使用和不使用 -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

谢谢

4

23 回答 23

178

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

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

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

于 2016-11-02T08:37:51.593 回答
112

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

于 2013-03-28T21:42:47.367 回答
41

如果您使用 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
于 2020-03-12T06:59:08.223 回答
23

对于Mac用户:

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

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

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

source $HOME/.bashrc
于 2018-11-29T16:31:06.983 回答
22

Mac 用户仅
假设您之前安装了 nvm,并且 npm 正确
(下面关于如何安装它的分步指南:
为 Mac 用户安装 nvm )。

你需要:

找到“.zshrc”文件:

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

编辑“.zshrc”文件:

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

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

于 2019-10-18T21:33:59.230 回答
16

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

首次打开:

nano .zshrc

并取消注释第二行:

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

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

于 2018-10-26T18:58:45.807 回答
10

对于macOS用户:考虑使用.profile 不是.bash_profile. 您可能仍需要手动将其添加到~/.zshrc

source $HOME/.profile

注意默认没有这样的文件!引用 slhck https://superuser.com/a/473103

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

touch ~/.profile
open -e !$

附加值是,使用单个文件设置环境感觉很好,不管使用什么 shell。在 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将不再被读取。

于 2017-08-19T19:33:39.963 回答
9

另一件事要尝试,对我来说答案是取消注释第export一个~/.zshrc

# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH
于 2018-08-31T14:50:16.093 回答
9

我解决了这个问题brew upgrade node

于 2020-06-16T15:34:49.837 回答
7

对我来说,添加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. 重启终端

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

于 2020-01-21T03:22:49.300 回答
7

转到您的终端并运行:nano .zshrc

注意:如果你没有这个目录,你可以使用 mkdir 命令创建它: mkdir ~/.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

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

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

于 2021-09-21T22:59:55.430 回答
7

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

nvm ls

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

nvm install <node_version**>

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

然后您将拥有 Node,您将能够使用npm 命令

于 2019-02-16T13:53:16.173 回答
6

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

于 2020-03-25T23:01:52.063 回答
2

它在 zsh 中对我有用。尝试nvm install --latest-npm

于 2021-10-08T07:30:33.090 回答
2

就我而言,重新安装节点解决了这个问题。任何人都可以通过以下网站安装节点:

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

于 2020-11-18T03:40:30.063 回答
2

我在安装 Vercel CLI 时遇到了同样的问题。

在我的情况下,安装sudo.

例子:sudo npm i -g vercel

于 2021-06-09T01:24:16.393 回答
1

就我而言,我用 NVM 安装了节点,安装 z Shell 后,节点和 nvm 命令不起作用。所以对我有用的是用这个命令再次安装 nvm:

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

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

于 2019-09-17T07:18:18.477 回答
1

只是在我的终端上写这个就解决了这个问题。请注意,我必须在我的项目文件夹中单独编写它。

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

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

于 2021-12-27T08:03:42.087 回答
1

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

我确实安装了 BREW,所以虽然这不是最好的方法,但使用 zsh,我做到了:

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

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

于 2020-09-12T20:25:28.027 回答
1

在 Mac Catalina 上使用 Node v12+,全局依赖项显示在/$HOME/.npm-global/bin

添加

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

~/.bash_profile所有内容保存在一个地方,然后添加

source $HOME/.bash_profile

~/.zshrc如果它还没有,就会成功。无需注销并重新登录,只需重新启动终端即可。

于 2021-03-13T10:11:53.967 回答
1

有时简单的事情会奏效。卸载节点并再次安装对我有用。

brew uninstall node
brew install node
npm update
于 2022-02-07T13:15:52.327 回答
0

我认为问题更多是关于 ZSH 的完成。

您需要在 .zshrc 中添加这一行:

zstyle ':completion:*' rehash true

如果你有Oh-my-zsh,已经做了PR,可以集成直到拉取:https ://github.com/robbyrussell/oh-my-zsh/issues/3440

于 2015-06-29T17:39:46.960 回答
0

对于OSX Catalina用户

brew install node@14

我正在使用节点 14,因为 Angular 不支持最新版本(不知道为什么).. 然后

echo 'export PATH="/usr/local/opt/node@14/bin:$PATH"' >> ~/.zshrc
于 2021-09-09T08:22:54.587 回答