[英]Command not found after npm install in zsh
我在 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
在~/.zshrc
.zshrc 开头添加source /home/YOUUSERNAME/.bash_profile
并且将检测到所有丢失的命令。
对于Mac用户:添加source /Users/YOUUSERNAME/.bash_profile
如果您使用 Homebrew 安装了 Node.js,则可以在/usr/local/share/npm/bin
中找到 npm 二进制文件。 你应该确保这个目录在你的 PATH 环境变量中。 因此,在您的~/.zshrc
文件中添加export PATH=/usr/local/share/npm/bin:$PATH
。
如果您使用 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
对于Mac用户:
除了以下内容:nvm、iterm2、zsh
我发现使用.bashrc
而不是.profile
或.bash_profile
引起的问题要少得多。
只需将后者添加到我的.zshrc
文件中:
source $HOME/.bashrc
仅限 Mac 用户
假设您之前安装了 nvm,并且 npm 正确
(下面是关于如何安装它的分步指南:
为 Mac 用户安装 nvm )。
你需要:
找到“.zshrc”文件:
open ~
以访问您的主目录。Cmd + Shift + .
在 Finder 中显示隐藏文件。编辑“.zshrc”文件:
将: source /Users/_user_Name_/.bash_profile
添加到文件顶部(其中 _user_Name_ 代表您的用户。
保存文件,然后关闭终端窗口。
在Ubuntu上,安装ZSH之后,之前在bash
终端上安装了Node或其他包,
首次打开:
nano .zshrc
并取消注释第二行:
export PATH=$HOME/bin:/usr/local/bin:$PATH
这对我有用,无需写任何行,我认为这个选项在Mac上也可用。
对于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
将不再被读取。
另一件事要尝试,我的答案是取消注释~/.zshrc
中的第一个export
:
# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH
我通过brew upgrade node
解决了这个问题
转到您的终端并运行: 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作为快速测试。
以我的拙见,首先,您必须确保安装了任何类型的 Node 版本。 对于该类型:
nvm ls
如果你没有得到任何版本,这意味着我是对的 :) 然后你必须输入:
nvm install <node_version**>
** 您可以在Node 网站上找到的实际版本
然后你将拥有 Node,你将能够使用npm 命令
对我来说,将export PATH=/usr/local/share/npm/bin:$PATH
添加到.zshrc
的公认答案不起作用。 我也尝试添加NVM_DIR
来解决我的问题。
vi .bashrc
你会发现如下一行。 复制它。
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
将复制的内容粘贴到.zshrc
文件
我希望这能解决你的问题。
对于任何仍然有问题的人。 不要忘记注销并再次登录。
就我而言,重新安装节点解决了这个问题。 任何人都可以通过以下网站安装节点:
就我而言,我使用 NVM 安装了节点,安装 z Shell 后,节点和 nvm 命令不起作用。 所以对我有用的是用这个命令再次安装 nvm:
wget https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
sudo zsh install.sh
上面的命令再次安装了 nvm,因为已经安装了节点,它会在 .zshrc 文件中自动添加节点路径,一切正常。
对于 MAC:我尝试了上述一些方法,但无济于事,无法进行任何工作。
我确实安装了 BREW,所以虽然这不是最好的方法,但使用 zsh,我做到了:
这对我有用。 希望这可以帮助某人。 #1困扰着我,但我现在会忍受。
在 Mac Catalina 上使用 Node v12+,全局依赖项显示在/$HOME/.npm-global/bin
添加
export PATH="$HOME/.npm-global/bin:$PATH"
到~/.bash_profile
将所有内容保存在一个地方,然后添加
source $HOME/.bash_profile
到~/.zshrc
如果它还没有的话就可以了。 无需注销并重新登录,只需重新启动终端即可。
我在安装 Vercel CLI 时遇到了同样的问题。
就我而言,使用sudo
安装。
示例: sudo npm i -g vercel
它在 zsh 中对我有用。 尝试nvm install --latest-npm
只是在我的终端上写这个就解决了这个问题。 请注意,我必须在我的项目文件夹中单独编写它。
export PATH="$HOME/.npm-packages/bin:$PATH"
export PATH="$HOME/.node/bin:$PATH"
来源: https ://cloudlinuxtech.com/npm-command-not-found-fix/
在我的情况下,nvm 似乎忘记了全局默认值——也许是我第一次添加它后所做的一些安装。
简单地重新混叠就可以了:
nvm alias default [insert version number here]
打开一个新终端以使其生效
我认为问题更多是关于 ZSH 的完成。
您需要在 .zshrc 中添加这一行:
zstyle ':completion:*' rehash true
如果你有Oh-my-zsh,已经做了PR,可以集成直到拉取: https ://github.com/robbyrussell/oh-my-zsh/issues/3440
只需从以下位置下载 NodeJS: https : //nodejs.org/it/download/
对我来说工作 ;)
对于OSX Catalina用户
brew install node@14
我正在使用节点 14,因为 Angular 不支持最新版本(不知道为什么).. 然后
echo 'export PATH="/usr/local/opt/node@14/bin:$PATH"' >> ~/.zshrc
有时简单的事情会奏效。 卸载节点并再次安装对我有用。
brew uninstall node
brew install node
npm update
在你的 .zshrc 文件末尾添加:
source $HOME/.zshrc.pre-oh-my-zsh
这立即解决了我的问题。
在我的情况下,这发生在我将 iterm2 配置为显示 git 分支名称之后。 我基本上让我的 iterm2 看起来更优雅。 但我注意到我的 vscode 终端正在检测 nvm 和 npm 命令
我在配置 iterm2 时在 .zshrc 文件中添加了一些行。 我添加了 oh-my-zsh。
但是将以下行添加到.zshrc 文件的顶部对我有用。 如果它不起作用,请杀死 vscode 终端并再次打开它
希望这会对某人有所帮助
export NVM_DIR=~/.nvm [ -s "$NVM_DIR/nvm.sh" ] &&. "$NVM_DIR/nvm.sh"
对于使用 windows- nvm的 Windows,我在安装附加版本的节点后遇到了问题。 我的 npm 停止工作但只在 ZSH 中。 bash、Powershell 和 cmd 都工作正常。 最终修复它的是为alias npm="npm.cmd"
的 zsh 添加一个额外的别名,它又开始工作了。 我认为 zsh 正在努力寻找正确的二进制文件,因此 .cmd 文件解决了这个问题。
我用 nvm 安装了节点,我遇到的问题是我有 2 个版本的节点,我将它们与命令 nvm use v12.xx.0 一起使用。 但不知何故,它们都分离了,我不得不再次将它与 nvm 其中之一一起使用,它又开始正常工作了。 所以命令是(如果你至少安装了一个版本的 nvm):
nvm 使用 vxx.xx.0
我安装了 zsh shell 和 Node 以及npmrc
。 我已经使用它很多年了,突然它开始给我这个错误。 这里的答案都没有帮助我解决这个问题。
原来我最近更新了我的 Node 版本,我不得不再次安装npmrc 。 因此,如果有人在升级节点版本后遇到此问题,请尝试
npm install -g npmrc
使用 VS Code 解决此问题的更直观的方法是:
打开终端 window(如果你在 VS Code 项目类型中:Control + ` 打开终端窗口)
在您的终端类型code ~/.zshrc
在 .zshrc 的顶部添加source /Users/<replace-with-home-folder-name>/.bash_profile
保存文件
重启终端
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.