安装节点后找不到 NPM 命令

NPM Command Not Found After Installing Node

我很难让 npm 命令工作,不幸的是,我对 unix 的了解不足以独自解决这个问题。我所做的只是 brew install node,但出现以下错误:

当我输入 npm 我得到 zsh: command not found: npm

进一步研究这个问题,我发现了这个堆栈溢出答案:

Command not found after npm install in zsh

按照它的建议,我尝试将 export PATH=/usr/local/share/npm/bin:$PATH 添加到我的 .zshrc 文件中。输入 npm

时仍然出现相同的错误

我可以确认它在路径中 echo $PATH 产生 /Users/nicholashaley/.rbenv/shims:/Users/nicholashaley/.rbenv/bin:/Applications/Postgres.app/Contents/Versions/9.3/bin:/usr/local/heroku/bin:/usr/local/share/npm/bin:/usr/local/bin:/Applications/Postgres.app/Contents/Versions/9.3/bin:/usr/local/heroku/bin:/Users/nicholashaley/.rbenv/shims:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

我还可以确认节点已安装 node -v 产量 v0.12.2

有什么想法吗?我难住了

不是答案,但也许是解决方案...

通过 brew 卸载 Node:brew uninstall node

然后从 https://nodejs.org/en/download/ 下载 Node 并安装。

npm 应该 "just work".

好的,这对我有用:

$ brew update
$ brew uninstall node
$ brew install node
$ sudo brew postinstall node #This what the important step

我遇到了同样的问题,但下面是对我有用的,没有 sudo

$ brew update
$ brew uninstall node
$ brew install node
$ chown -R YourUserName /usr/local/lib/node_modules/
$ brew postinstall node #This what the important step

万一这个问题一直没有解决,这对我有用:

  1. brew uninstall node
  2. brew install node
  3. brew doctor 看看需要修剪什么。我的问题是有一个非 brew 的地方,我在那里更改了 npm 包的安装位置,因为我试图为我安装一个 npm 包。这是一个错误(忘记了我最初是通过 brew 安装 node 和 npm,但现在 brew 无法再到达 npm 安装目录,也无法更改或删除它)。所以 brew prune 即使符号链接应该被删除也没有工作,但它提醒我我已经更改了 npm 安装位置。这将我们带到:

  4. 删除那些目录

  5. brew postinstall node

希望对您有所帮助。

LTS 版本的任何人都使用以下命令:

brew postinstall node@6

我发现这篇文章对 step-by-step 详细信息很有帮助:
https://www.dyclassroom.com/howto-mac/how-to-install-nodejs-and-npm-on-mac-using-homebrew

此外,在完成上述文章中的所有步骤后,node 可以正常工作,但我的机器仍在运行 "command not found: npm"。然后我 运行 以下两个命令和 npm 正在工作。

sudo chown -R myusername:myusergroup /usr/local/lib/node_modules
brew postinstall node

Gist 中的问题详情以及我如何修复它

  1. Installed nodeJs via nvm using Git Bash
  2. Installed hyper terminal & WSL
  3. Installed Ubuntu (windows Store) & configured zsh shell. 
  4. Faced the command not found all over in the zsh shell
  5. The same commands are working nicely in the bash shell

尝试在 .zshrc.profile 文件中获取(节点、nvm、npm)路径 & 修改了 Windows 中的系统和环境变量。 None 这些步骤帮助我解决了问题。

我认为问题在于 zsh 和 bash 终端处理事情的方式不同。在 bash 终端中安装时,windows 中 nodeJs 的默认位置将设置为

C:\Users\Program Files\nodejs

上面的符号链接到 C:\Users\<username>\AppData\Roaming\nvm

无论我如何尝试在 zsh 中为这些东西起别名,只有 node 和 nvm 使用别名。 npm 无法找到必要的 lib 文件。

唯一对我有用的解决方案是在 zsh 终端中重新安装节点

  1. 删除了在 Bash 终端中通过 nvm 安装的节点版本。
  2. 通过控制面板删除了 windows 中的 nvm
  3. 在 zsh 中安装了 nvm shell
  4. 安装了节点最新的 LTS 版本,也安装了 npm。

Post 在 Zsh 中通过 nvm 安装节点我观察到以下情况。

  1. 节点、nvm、npm 和 npx 的路径已自动添加到 $PATH 变量中
  2. 节点目录在 C:\Users\Program Files\nodejs 中都不可用 也不是 C:\Users\{username}\AppData\Roaming\nvm
  3. 相反,它在 /home/<username>/.nvm/versions/node/v14.15.1/bin/node
  4. 处配置不同

这个视频真的帮助我在 ZSH 中重新安装节点:https://www.youtube.com/watch?v=kL8iGErULiw

通常npm应该和node可执行文件在同一个目录下,这可以通过which node来确定。检查此目录是否是您 PATH 的一部分。如果节点是通过 nodenvnvm 等节点版本管理器安装的,请查看文档以了解如何将这些可执行文件添加到路径中。

使用 nodenv,可以通过以下方式完成:

eval "$(nodenv init -)"