我一直在使用NVM为我的Node.js工作安装最新版本的Node.js。它完全可以安装不同的版本并在它们之间切换。它还在每个本地…安装最新版本的NPM。/bin文件夹和Node.js二进制文件。然而,似乎没有办法切换我正在使用的NPM版本(或者至少我不能弄清楚)。

我自己能想到的唯一解决方案是删除默认的二进制文件(这是我第一次用NVM安装节点时安装的NPM),并在其位置放置最新的NPM二进制文件。然而,有没有更好的方法来做到这一点呢?


当前回答

在我的例子中,我在一个被nvm设置为版本10的Node.js环境中将npm从版本6更新到版本8。这导致npm不再工作,使我在这里找到的答案毫无用处。

最后我清除了nvm文件夹:

rm -rf ~/.nvm/versions/node/*

之后我可以再次使用nvm和npm。我的经验是:永远不要用npm安装一个新的npm版本。NVM install-latest-npm似乎可以让你在遗留环境中安全更新。

其他回答

在基于linux的操作系统上更改npm版本还不是一个简单的单命令过程。我已经做了以下操作来切换回较旧版本的npm。这应该可以让任何版本的npm工作。

首先安装你想要使用的npm版本:

sudo npm install -g npm@X.X.X

删除/usr/local/bin/中的符号链接:

sudo rm /usr/local/bin/npm

使用你想要的npm版本重新创建符号链接:

sudo ln -s /usr/bin/npm@X.X.X /usr/local/bin/npm

我们可以用n很容易地解出来。

安装n:

npm install -g n

切换版本:

n latest

切换到特定版本:

n 10.16.0

更改版本的简单方法是首先使用

nvm ls

然后从列表中选择一个版本

nvm use version

使用npm i -g npm。试着运行这个。

我用的是Windows,这些东西都不能用。我不断得到关于文件的错误。不过这个方法奏效了:

cd %APPDATA%\nvm\v8.10.0           # or whatever version you're using
mv npm npm-old
mv npm.cmd npm-old.cmd
cd node_modules\
mv npm npm-old
cd npm-old\bin
node npm-cli.js i -g npm@latest

cd %APPDATA%\nvm\v8.10.0 # or whatever version you're using
rm npm-old
rm npm-old.cmd
cd node_modules\
rm -rf npm-old

然后,我又开始工作了。