【问题标题】:NPM Command Not Found After Installing Node安装节点后找不到 NPM 命令
【发布时间】:2015-12-21 08:38:28
【问题描述】:

我很难让 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

有什么想法吗?我被难住了

【问题讨论】:

  • 卸载和重新安装 Node 不起作用,所以我清除了 /usr/local/lib/node_modules 目录(使用 sudo rm -rf /usr/local/lib/node_modules)修复了它。跨度>

标签: node.js unix npm zsh zshrc


【解决方案1】:

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

使用nodenv,可以这样做:

eval "$(nodenv init -)"

【讨论】:

    【解决方案2】:

    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 文件中获取 (node, nvm, npm ) 路径 & 修改了 Windows 中的系统和环境变量。这些步骤都没有帮助我解决问题。

    我认为问题在于 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 shell 中安装了 nvm
    4. 安装了节点最新的 LTS 版本,npm 也从中安装。

    在 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 处配置不同

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

    【讨论】:

      【解决方案3】:

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

      此外,在完成上述文章中的所有步骤后,节点正在工作,但我的机器仍然给出“找不到命令:npm”。然后我运行了以下两个命令,npm 正在工作。

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

      【讨论】:

      • 这很好用。有时,brew postinstall 节点不运行。因此,在运行第一个命令后,node -v 将为您提供正确的节点版本,但是您将使用 npm,它会在尝试 npm 命令时返回“npm not found”。 “brew postinstall node”将为您解决这个问题
      • 尝试上述所有步骤后。这终于奏效了。谢谢。
      【解决方案4】:

      我遇到了同样的问题,但最后下面对我有用的是没有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
      

      【讨论】:

      • 在我的情况下postinstall 要求 sudo 权限,而 brew 不喜欢它:(
      • 这个有帮助,但我应该在最后一步之前做stackoverflow.com/questions/23400073/…
      • 错误:/usr/local 不可写。您应该将 /usr/local 的所有权和权限更改回您的用户帐户:
      • @Venkat.R 非常感谢兄弟。我是 mac 新手,您节省了很多时间。
      • 对于chown 命令,我需要在其前面加上sudo,否则不允许该操作。这修复了我的自制安装节点/npm,谢谢。
      【解决方案5】:

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

      brew postinstall node@6
      

      【讨论】:

        【解决方案6】:

        如果这个问题从未得到解决,这对我有用:

        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

        希望对您有所帮助。

        【讨论】:

          【解决方案7】:

          好的,这对我有用:

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

          【讨论】:

          • sudo brew 看起来不是一个好主意...这是我得到的错误:Error: Cowardly refusing to `sudo brew postinstall` You can use brew with sudo, but only if the brew executable is owned by root. However, this is both not recommended and completely unsupported so do so at your own risk.
          • ^ 同意 - 您不需要运行 $ sudo brew ...
          • 我也面临同样的问题。不确定。遵循 3 个步骤后。仍然找不到我的 npm 命令
          • 没有第 4 个命令的 sudo 解决了我的问题。让我更新为单独的答案以供参考
          • postinstall 对我有用,但不需要 sudo。相反,将无法访问的文件/目录分配给您自己的管理员用户(我:admin)。
          【解决方案8】:

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

          通过 brew 卸载节点:brew uninstall node

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

          npm 应该“正常工作”。

          【讨论】:

          • 这是纯金。谢谢!
          • 在尝试这个之前,我尝试了 brew postinstall 但效果不佳,上述方法更好,因为它与 node 一起还可以处理 npm 非常感谢
          • 这不起作用,但是一旦我在卸载后sudo rm -rf /usr/local/lib/node_modules,然后它就起作用了。
          猜你喜欢
          • 1970-01-01
          • 2016-11-23
          • 2012-09-26
          • 2021-05-01
          • 2014-01-13
          • 1970-01-01
          • 1970-01-01
          • 2022-01-05
          • 2011-08-31
          相关资源
          最近更新 更多