如何使用nvm更改npm的版本?

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

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

589329 次浏览

NVM不处理npm。

如果你想安装node。js 0.4。x(许多包仍然依赖于它)并使用NPM,你仍然可以使用NPM 1.0.x。

安装Node.js 0.6。X (NPM 1.1.x附带),然后用NPM安装NVM:

npm install nvm
. ~/nvm/nvm.sh

安装Node.js 0.4。X与nvm:

nvm install v0.4.12
nvm use v0.4.12

使用install.sh安装npm(注意任何重定向后的-L参数):

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

这将检测Node.js 0.4.12,并在~ / nvm / v0.4.12 / lib / node_modules文件夹中安装npm 1.0.106,并为nvm创建一个符号链接:

~/nvm/v0.4.12/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js

如果你尝试运行npm,它仍然会给出一个错误,但如果你再次执行nvm use v0.4.12,它现在应该可以工作了。

正如另一个答案中所指出的,现在有一个这样的命令:

NVM现在有一个更新npm的命令。它是nvm install-latest-npmnvm install --latest-npm

nvm install-latest-npm:尝试升级到当前Node.js版本上最新的工作npm

nvm install --latest-npm:安装后,尝试升级到给定Node.js版本的最新工作npm。

以下是这个问题正确答案的以前版本。

对于npm的后续版本,现在要简单得多。只需更新nvm安装的版本,它位于~/.nvm/versions/node/[your-version]/lib/node_modules/npm中。

我安装了Node.js 4.2.2,它附带npm 2.14.7,但我想使用npm 3。于是我做了:

cd ~/.nvm/versions/node/v4.2.2/lib
npm install npm

简单!

是的,这应该适用于任何模块,而不仅仅是npm,你想成为“全球”的模块。对于节点的特定版本。


在更新的版本中,npm -g是智能的,它将模块安装到上面的路径中,而不是系统全局路径中。

在基于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

通过查看www.npmjs.com/install.sh,我发现有一种方法可以通过设置环境变量来安装特定的版本。

export npm_install="2.14.14"

然后运行npmjs.com中描述的下载脚本:

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

如果你忽略设置npm_install变量,那么它将安装标记为最新的的版本。

使用

npm install npm@x.x.x -g
npm install npm@5.4.0 -g

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

NVM现在有一个更新npm的命令。它是nvm install-latest-npmnpm install --latest-npm

与之前的指令略有不同。它为我工作(macOS v10.12.6 (Sierra))。

npm install -g npm@3.10.10
rm /usr/local/bin/npm
ln -s ~/.npm-packages/bin/npm /usr/local/bin/npm
npm --version

在Windows系统中,以系统管理员身份运行终端(以防出现像我一样的权限问题)。然后使用特定的Node.js版本(比如7.8.0)

nvm use 7.8.0

然后更新你的npm到所需的特定版本:

npm install -g npm@5.0.3

我用的是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

然后,我又开始工作了。

在现有的Node.js安装上安装nvm-windows后,我也遇到了同样的问题。解决办法就是按照说明去做:

你也应该删除现有的npm安装位置(例如: C:\Users\AppData\Roaming\npm")这样nvm的安装位置

安装&升级< / >

Windows下NVM的安装和使用

Windows下NVM的安装步骤如下:

NVM代表节点版本管理器,它将帮助切换你的Node.js版本以供特定用途。它还允许用户使用多个npm和Node.js版本。

  • 安装nvm setup。
  • 使用命令“nvm list”;查看已安装Node.js的版本列表。
  • 输入“nvm使用版本号[6.9.3]”;切换版本。
  • 更多的信息
  1. 从这里先前版本 .找到你想要使用的Node.js和npm版本
  2. nvm use 8.11.4
  3. 你已经用Node.js 8.11.4得到了npm 5.6

只要使用nvm use node_version即可。

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

nvm ls

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

nvm use version

由于某种原因,npm install -g npm@X.X.X不能工作,所以我在npm文件夹中的文件package.json中更改了npm的版本:

which npm


/opt/homebrew/bin/npm

然后运行

npm install npm

平台:macOS v11.2.2 (Big Sur)和M1 (arm64)。

我们可以使用n轻松解决这个问题。

要安装n:

npm install -g n

切换版本:

n latest

切换到特定版本:

n 10.16.0

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

最后我清除了nvm文件夹:

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

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

你可以使用nvm安装两个版本的Node.js,并在每个Node.js环境中安装不同版本的npm。

例如,nvm install 14.18.0nvm install 14.18.1将安装两个独立的Node.js环境。

  • 在14.18.0中,可以使用npm v6(默认安装)。
  • 在14.18.1中,可以使用npm v7(使用npm install -g npm@7安装)。

这样,你就可以轻松地切换到不同的npm版本。

nvm use 14.18.0


Now using node v14.18.0 (npm v6.14.15)


nvm use 14.18.1


Now using node v14.18.1 (npm v7.24.2)

为了在使用nvm时改变你的npm版本,你必须在需要的Node.js版本的文件夹中安装你的npm版本只有。例如,如果你想安装npm 8.12.1版本,你必须在节点版本文件夹中安装。

如果你全局执行,它将工作。