Node.js 在安装了新版本后,仍停留在旧版本上

Node.js 在安装了新版本后,仍停留在旧版本上,node.js,Node.js,出于某种原因,在运行sudo npm install-g node gyp之后,node gyp将与node v0.10.25一起安装: node --version v4.5.0 npm --version 2.15.9 node-gyp --version v3.4.0 which node /home/admin/.nvm/versions/node/v4.5.0/bin/node 我已经访问了/home/admin/.nvm/versions/node/并找到了这些文件夹:v4.

出于某种原因,在运行
sudo npm install-g node gyp
之后,node gyp将与node v0.10.25一起安装:

node --version
v4.5.0

npm --version
2.15.9

node-gyp --version
v3.4.0

which node
/home/admin/.nvm/versions/node/v4.5.0/bin/node
我已经访问了
/home/admin/.nvm/versions/node/
并找到了这些文件夹:
v4.4.4、v4.4.7、v4.5.0


有人能触发这个问题吗?v0.10.25版本在哪里?我如何摆脱它?

您可能需要清理/删除节点的其他版本。也许最简单的方法是删除所有内容,然后重新安装。上有一个脚本(
install.sh
)用于此。只需在您的终端上运行此程序,它就会删除所有旧安装并安装最新版本

试试看,如果有帮助,请告诉我。它似乎对密切相关的问题起了作用

问题在于,作为普通用户,您正在使用Node Version Manager,它允许您独立于系统安装的Node版本(在您的情况下,版本为0.10.25)安装不同(较新/较旧)的Node版本

当您使用
sudo
安装
node gyp
时,您正在“切换”到另一个用户(root),nvm设置不适用于该用户。因此,将使用系统安装的Node版本,从而触发您收到的错误

您有一些解决方案:

  • 安装
    node gyp
    时不要使用
    sudo
    。由于您使用的是
    nvm
    ,因此您已经拥有作为普通用户安装它所需的所有权限
  • 更新节点的系统安装版本。如果可能的话,这取决于您使用的发行版;一些Linux发行版只在其主发行版中提供非常过时的Node版本。在这种情况下,请看,它为最常见的Linux发行版提供了最新的节点二进制文件

    • 我也有同样的问题。我发现我有一个旧版本的node.exe文件,在路径(环境变量)中我有一个指向这个旧node.exe文件夹的链接。一旦将其从路径中删除(并重新启动cmd),问题就解决了

      如果我使用以下命令重新安装它,是否会删除旧版本:curl-sL | sudo-E bash-sudo apt get install-ynodejs@ohadinho我想会的,是的。
      npm WARN engine cryptiles@2.0.5: wanted: {"node":">=0.10.40"} (current: {"node":"v0.10.25","npm":"1.3.10"})
      npm WARN engine boom@2.10.1: wanted: {"node":">=0.10.40"} (current: {"node":"v0.10.25","npm":"1.3.10"})
      npm WARN engine hoek@2.16.3: wanted: {"node":">=0.10.40"} (current: {"node":"v0.10.25","npm":"1.3.10"})