为什么NVM安装认为我使用的是错误版本的Node?

时间:2013-06-14 03:21:54

标签: node.js npm nvm

在尝试通过Node Package Manager全局安装less节点模块时,我遇到了一个有趣的问题,我无法解决问题。基本上,我收到一个错误,声称节点模块,更少,与我的节点版本不兼容。它说我使用节点v0.6.12并且它至少需要v0.8.0才能工作。

首先我确定我使用的是最新版本的Node之一:

nvm use v0.10.11
Now using node v0.10.11

node -v
v0.10.11

然后我尝试在全局安装less模块​​:

sudo npm install -g less 

收到此错误消息:

npm ERR! error installing less@1.4.0
npm ERR! error rolling back less@1.4.0 Error: UNKNOWN, unknown error '/usr/local/lib/node_modules/less'

npm ERR! Unsupported
npm ERR! Not compatible with your version of node/npm: request@2.21.0
npm ERR! Required: ["node >= 0.8.0"]
npm ERR! Actual:   {"npm":"1.1.4","node":"0.6.12"}
npm ERR! 
npm ERR! System Linux 3.2.0-45-generic
npm ERR! command "node" "/usr/bin/npm" "install" "-g" "less"
npm ERR! cwd /home/derek
npm ERR! node -v v0.6.12
npm ERR! npm -v 1.1.4
npm ERR! code ENOTSUP
npm ERR! message Unsupported
npm ERR! errno {}
npm not ok

在这里,您可以看到节点包管理器尝试使用节点v0.6.12进行较少的安装(或认为它正在使用)。看起来好像some others have run into this problem,但他的问题是他之前通过apt-get安装了节点,并且他使用Node Version Manager解决了这个问题。我最初通过NVM安装了Node。但是,我们非常感谢您提供的任何帮助。

注意:值得一提的是,它将使用npm install -g less成功安装,没有sudo权限。但是,只要打开另一个终端,就会从/usr/local/lib/node_modules中删除较少的节点模块,使其无效。

3 个答案:

答案 0 :(得分:1)

你是否已经厌倦了完全删除旧版本,v0.6.12,如

  
    

sudo apt-get purge node。

  

我对linux不太好,但似乎sudo仍然在其路径中使用旧版本的节点,并且在sudo下调用npm正在查找它并尝试使用它。

答案 1 :(得分:1)

与Linux一起安装的Node.js可能安装在/ usr / sbin /中(至少在Ubuntu 13.04上适用于我)。这是旧版本。由于您已经安装了nvm并且管理了Node.js版本,因此您需要指向〜/ .nvm / v0.10.11 / bin / node。

答案 2 :(得分:1)

您的系统上已经有一个nodejs副本。 解决方案是使用/ usr / local重新安装或覆盖您的节点作为前缀

git clone https://github.com/joyent/node
cd node
./configure --prefix=/usr/local
make
sudo make install

这是一个类似的问题:

how to delete node on linux mint 13?