无法将 npm 从 1.4.28 升级到最新版本 (2.2)

Unable to upgrade npm from 1.4.28 to latest (2.2)

我在 Ubuntu 14.04 上使用稳定版的节点。 (通过 PPA 安装)当我尝试升级像 yo 这样的软件包时,我收到以下错误:

npm ERR! notsup Unsupported
npm ERR! notsup Not compatible with your version of node/npm: yo@1.4.2
npm ERR! notsup Required: {"node":">=0.10.0","npm":">=2.1.0"}
npm ERR! notsup Actual:   {"npm":"1.4.28","node":"0.10.35"}

npm ERR! System Linux 3.13.0-32-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "update" "-g"
npm ERR! cwd /home/ekrem
npm ERR! node -v v0.10.35
npm ERR! npm -v 1.4.28
npm ERR! code ENOTSUP
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/ekrem/npm-debug.log
npm ERR! not ok code 0

当我点击 (sudo) npm update -g npm 时,这是我得到的结果:

npm@2.1.3 /home/ekrem/.node/lib/node_modules/ionic/node_modules/npm

命中后npm -v

1.4.28

我还清除了~/.npm下的所有文件,清除了缓存,重新安装了我需要的组件,但没有任何变化。另外;

➜  ~  which node
/usr/bin/node
➜  ~  which npm 
/usr/bin/npm
➜  ~  less ~/.npmrc
prefix = ~/.node

我在网上查过类似的问题,但没有什么与我相近的。

更新:

我已经删除了 nodejs;清除 ~/.node~/.npm 下的文件(正如@johns 所建议的)使用说明 here 的第一种方法安装。以下是更新后的输出:

➜  node -v
v0.10.35
➜  npm -v 
1.4.28
➜  which node
/home/ekrem/local/bin/node
➜  which npm 
/home/ekrem/local/bin/npm
➜  npm update -g npm 
# returns nothing
➜  ~  npm config get prefix
/home/ekrem/.node

有很多关于 "npm update -g" 被破坏且暂时不使用它的评论:

https://github.com/npm/npm/issues/6247

我会尝试重置或重新安装 npm,然后从那里开始 - 全新重新安装 npm 应该相对轻松并解决问题:

https://github.com/npm/npm/wiki/Troubleshooting#if-your-npm-is-broken

这个解决方案对我有用

使用 cmd.exe 导航到 C:\Program Files (x86)\nodejs,然后 运行 在没有 -g 的情况下进行安装:

npm install npm

我遇到了类似的问题并发现了这个 post。经过几次尝试后,我让 npm 工作的方法是删除所有 npm 'node_module' 文件夹并删除任何 npm 配置文件,尤其是主目录中的 .npmrc 文件。

那我运行'sudo apt-get purge nodejs'.

我转到安装程序并使用以下命令重新安装了 nodejs:

'curl https://npmjs.org/install.sh | sh'

然后 运行:

sudo apt-get install nodejs

最后我运行:

npm update -g npm

关于那个 'update' 函数中的错误 post 有问题,但它似乎对我有用,我从 1.4 升级到 2.7。

我希望这可以节省一些时间。

@ThinkBonobo 的类似答案,但我所要做的就是 运行 直接从 npmjs.org 更新。来自新配置的实例:

$curl -sL https://deb.nodesource.com/setup | sudo bash -
$sudo apt-get install nodejs
$npm -v
1.4.28
$curl -L https://npmjs.org/install.sh | sudo sh
$npm -v
2.7.3

不需要其他步骤。

在我的例子中,我必须执行以下步骤才能从 npm@1.4.28npm@3.2.0(当前最新):

curl -L https://www.npmjs.org/install.sh | sudo sh

此行可能会触发一些错误,例如:

Error: EACCES, mkdir '/usr/lib/node_modules/npm'

如果是这样,只需 运行:

sudo rm -rf /usr/lib/node_modules/npm(或错误中显示指定目录)

从那里开始:

sudo npm install -g npm@3.0-latest

现在

npm -v

成功展示美丽:3.2.0