如果使用 sudo npm --version,npm --version 会有所不同

如果使用 sudo npm --version,npm --version 会有所不同

我刚刚在我的机器上升级了 nodejs。我卸载了我拥有的 node 版本(ubuntu 存储库中的版本)。然后我安装了 nvm 并安装了 nodejs 4.2.2。

一切顺利,没有错误,但是当我运行时,npm --version它显示 2.14.7,然后我决定运行:sudo npm install -g npm以升级 npm 版本,但是当我检查它时,它仍然显示 2.14.7。因此,我再次检查,但使用sudo npm --version这次,并且有最新的 3.3.10 版本。

为什么会发生这种情况?我该如何解决?

以下是屏幕截图:
使用或不使用 sudo 时会显示不同的 npm 版本

我正在使用 Ubuntu 14.04。

编辑:

添加 wich 命令输出

sistemas@ITAACO01:~$ which npm
/home/sistemas/.nvm/versions/node/v4.2.2/bin/npm
sistemas@ITAACO01:~$ sudo which npm
/usr/local/bin/npm

答案1

(从输出来看which)您的用户( )设置为使用位于的不同的、过时sistemas的版本- 忽略位于的更新的系统范围版本。npm/home/sistemas/.nvm/versions/node/v4.2.2/bin/npm/usr/local/bin/npm

检查/usr/local/bin你的 中是否$PATH。(执行echo $PATH并查看其输出是否包含/usr/local/bin

如果没有,请添加(放入PATH="$PATH:/usr/local/bin"您的~/.bash_profile

答案2

有两种可能性:

  1. 新版本路径不存在:

    添加路径。例如:添加/usr/local/bin/npm到路径

  2. 旧版本早于$PATH

    删除旧版本路径。例如:/home/sistemas/.nvm/versions/node/v4.2.2/bin/npm从中删除$PATH

相关内容