3

在尝试通过节点包管理器全局安装 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 安装更少。似乎其他人也遇到了这个问题,但他的问题原来是他之前通过 apt-get 安装了节点,并由他使用节点版本管理器解决。然而,我最初是通过 NVM 安装 Node 的。你们可以提供的任何帮助将不胜感激。

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

4

3 回答 3

1

You already got a nodejs copy on your system. The solution is to re-install or overwrite your node using /usr/local for your prefix

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

Here is a similar problem:

how to delete node on linux mint 13?

于 2013-10-28T14:43:01.003 回答
1

您是否厌倦了完全删除旧版本 v0.6.12 之类的东西

sudo apt-get 清除节点。

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

于 2013-06-14T04:36:55.307 回答
1

随 Linux 安装的 Node.js 可能安装在 /usr/sbin/ 中(至少在 Ubuntu 13.04 上对我来说是这样)。那是旧版本。由于您已经安装了 nvm 并使用它来管理您的 Node.js 版本,因此您需要指向 ~/.nvm/v0.10.11/bin/node。

于 2013-07-26T22:16:13.607 回答