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
出于某种原因,在运行sudo npm install -g node-gyp
- node-gyp installs with node v0.10.25之后:
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"})
我已访问/home/admin/.nvm/versions/node/
并找到了这些文件夹:v4.4.4, v4.4.7, v4.5.0
。
有人可以触发问题吗?那个v0.10.25版本在哪里,我该如何摆脱它?
答案 0 :(得分:1)
问题在于,作为普通用户,正在使用nvm
节点版本管理器,它允许您独立于节点安装不同(较新/较旧)的Node版本系统安装的Node版本(在您的情况下,为0.10.25)。
使用node-gyp
安装sudo
时,您正在“切换”到不同的用户(root),而nvm设置不适用。因此,将使用系统安装的Node版本,触发您正在获得的错误。
您有几个解决方案:
sudo
时请勿使用node-gyp
。由于您使用的是nvm
,因此您已拥有以普通用户身份安装所需的所有权限。答案 1 :(得分:0)
您可能必须清除/删除其他版本的Node。也许最简单的方法是删除所有内容然后重新安装。在npmjs.org site上有一个脚本(install.sh
)。只需在您的终端上运行它,然后它应删除所有旧安装并安装最新版本。
尝试一下,让我知道这是否有帮助。它似乎适用于密切相关的问题here。
答案 2 :(得分:0)
我遇到了同样的问题。我发现我有一个旧版本的node.exe文件,并在PATH(环境变量)我有一个链接到这个旧的node.exe文件夹。一旦从路径中删除它(并重新启动cmd),问题就解决了