ChatGPT解决这个技术问题 Extra ChatGPT

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

我一直在使用 NVM 为我的节点工作安装最新版本的 nodeJS。它完全适合安装单独的版本并在它们之间切换。它还会在每个本地 .../bin 文件夹中安装最新版本的 NPM 以及节点二进制文件。但是,似乎没有任何方法可以切换我正在使用的 NPM 版本(或者至少我无法弄清楚)。

我能想到的唯一解决方案是删除它默认使用的二进制文件(这是我第一次使用 NVM 安装节点时安装的 NPM),并在其位置放置最新的 NPM 二进制文件。但是,我想知道是否有更好的方法可以做到这一点。

为什么要更改 NPM 的版本,并不是要安装任何仅适用于旧版本 NPM 的软件包。而在 node 0.6 之后,node 自带了最新的 NPM。因此更改节点版本也会更改 npm 版本。
除非它不通过 NVM。是的 - node 带有 NPM,但这只是意味着它会在其旁边安装一个二进制文件。我可以在它们各自的文件夹中看到这两个二进制文件,但是当我运行“nvm use v0.6.13”时,使用的 npm 二进制文件仍然是使用旧版本节点安装的那个,而不是使用最新版本安装的那个。
这是 npm: github.com/creationix/nvm/blob/master/nvm.sh#L135-148 的代码,从 0.6 开始就不需要了,所以也许您应该尝试删除该部分。那应该有帮助。您也可以在 github 上创建问题。
我现在正在解决这个问题,任何帮助表示赞赏 - stackoverflow.com/questions/50976138/…

K
Kevin Burke

编辑:自从第一次回答这个问题几年以来,如 a newer answer 中所述,现在有一个命令:

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

nvm install-latest-npm:尝试在当前节点版本上升级到最新的工作 npm

nvm install --latest-npm:安装后,尝试在给定节点版本上升级到最新的工作 npm

以下是此问题正确答案的先前版本。

在第一次提出这个问题三年多之后,现在答案似乎要简单得多。只需更新 nvm 安装的版本,它位于 ~/.nvm/versions/node/[your-version]/lib/node_modules/npm 中。

我刚刚安装了npm 2.14.7附带的node 4.2.2,但我想使用npm 3。所以我做了:

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

简单的!

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

编辑 1:在最新版本中,npm -g 很智能,会将模块安装到上面的路径中,而不是系统全局路径中。

感谢@philraj 在评论中指出这一点。


对于那些不知道他们的 nvm 在哪里的人,比如我,运行 which npm
如果您想要最新版本以外的 npm 版本,请运行 npm install npm@major.minor.patch 以获取该特定版本,例如 npm@3.10.9
类似的东西也适用于 nvm-windows,例如 cd ~/AppData/Roaming/nvm/v5.10.1
对于在 Windows 上使用 nvm 的任何人,都可以像上面一样完成(运行 npm install npm),但在 Windows 的节点安装位置。在 Windows 10 中,这是 ~/AppData/Roaming/nvm/[your-version]。即用户\我的用户名\AppData\Roaming\nvm\v9.7.1
更简单:nvm install-latest-npm 由 samlandfried 在下面回答 -stackoverflow.com/a/47519162/5991278
O
Ocko
npm install npm@x.x.x -g
npm install npm@5.4.0 -g

虽然问题是关于 nvm 的,但我实际上是为此而来的,谢谢。赞成。
由于 -g 标志,无论您使用 nvm 安装了哪个版本的 Node,此命令都将起作用。当您在 nvm 中切换版本时,npm 版本也会发生变化,因此很容易撤消此操作。
s
seangates

nvm 不处理 npm。

所以如果你想安装node 0.4.x(很多包仍然依赖)并使用NPM,你仍然可以使用npm 1.0.x。

安装节点 0.6.x(npm 1.1.x 附带)并使用 npm 安装 nvm:

npm install nvm
. ~/nvm/nvm.sh

使用 nvm 安装节点 0.4.x:

nvm install v0.4.12
nvm use v0.4.12

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

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

这将检测节点 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,它现在应该可以工作了。


谢谢!网址已更改为:curl https://npmjs.org/install.sh | sh
现在这是一个非常古老的答案吗?我的 npm 由 nvm 自动下载,作为我正在使用的节点版本的依赖项。
是的。它是旧的。如果您仍在使用节点 0.4 和旧的 nvm,您可能会看到此问题。
URL 已再次更改为强制 www。使用 curl -L 跟随重定向。
s
samlandfried

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


你有这个文档的链接吗?
来自 nvm help 控制台输出:--latest-npm After installing, attempt to upgrade to the latest working npm on the given node version 不过,我在 nvm 文档中没有找到对此的引用。如果你找到了请分享。
谢谢!这确实应该被标记为正确答案。
它仅在 32 位上可用
当我运行它时,它也更新了节点
R
Ryan Shillington

我在 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

繁荣,我又回来做生意了。


谢谢,这对我也有用,在 Windows 上。 (有同样的文件冲突问题)
为我工作谢谢。我在 Windows 上使用 nvm 来管理节点,并希望在切换到节点版本后提升 nvm。必须以提升的权限运行控制台。我的路径 nodejs 文件夹是“C:\Program Files\nodejs”,它是我机器上另一个位置的别名,nvm 用于缓存下载(不是 APPDATA),猜想我在安装 nvm 时选择了不同的位置。
谢谢,他们可能需要在 nvm windows 上的每个旧 nodejs 版本上修复 npm update 的方式。
使用 nodejs v10.15.3 在 Windows 上工作,我必须将 mv 更改为 ren,将 rm 更改为 delrmdir
我发现从 npm@6 升级时,我还必须重命名 npxnpx.cmd。不确定哪个版本引入了 npx。
a
adnan2nd

在 Windows 中,以管理员身份运行您的终端(以防我遇到权限问题)。然后使用特定的节点版本(比如 7.8.0)

nvm use 7.8.0

然后将您的 npm 更新为所需的特定版本

npm install -g npm@5.0.3

A
Arun Reddy

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

按照这些说明尝试从 2.14.7 到 2.15.9,现在当我输入 npm -v 时,我得到 3.8.6。该死。
在尝试了几件事之后,对我来说,仅使用 sudo npm install -g npm@x.x.x 就可以让我从 npm -v 响应该版本。无论如何,这至少从 4.x 到 2.15.9 有效。
在我的情况下,sudo npm install -g npm@4.6.1 只安装了 4.6.1,但仍然使用了 npm 5.1.0。您的提示帮助我切换到 4.6.1。
A
Alvin Smith

从这里找到您想要使用的节点和 npm 版本 https://nodejs.org/en/download/releases/ nvm 使用 8.11.4 您已经获得了带有节点 8.11.4 的 npm 5.6

只需使用 nvm use node_version


这是第一次工作得很好。如果您从较旧的节点版本升级运行 npm i -g npm 并更新到最新版本,则您的 npm 版本将是最新的。
j
jim

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

export npm_install="2.14.14"

然后按照 npmjs.com 中的说明运行下载脚本:

卷曲 -L https://www.npmjs.com/install.sh |嘘

如果您省略设置 npm_install 变量,那么它将安装他们标记为最新的版本


我不得不使用 curl -L https://www.npmjs.com/install.sh | sudo sh,aaaa 并且这种方法不起作用,即使我已经导出了所述环境变量,也让我获得了最新版本。可恶。我想要 2.14.7 中的 2.15.9 版本,下面的答案让我处于 3.8.6,现在这个答案让我处于 4.0.2。哇。
D
Deepak Chandh

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

安装 n

>> npm install -g n

切换版本

>> n latest

切换到特定版本

>> n 10.16.0

D
Dimitri Reifschneider

npm i -g npm 呢?您是否也尝试运行它?


这始终是我通常使用的最快和最简单的方法。
N
Nick Grealy

上述说明略有不同,对我有用。 (MacOS Sierra 10.12.6)

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

W
WelcomeTo

在现有节点安装之上安装 nvm-windows 后,我遇到了同样的问题。解决方案只是按照说明进行操作:

您还应该删除现有的 npm 安装位置(例如“C:\Users\AppData\Roaming\npm”),以便正确使用 nvm 安装位置。

Installation & Upgrades


h
highjump

您可以使用 nvm 安装两个版本的节点,并在每个节点环境上安装不同版本的 npm。
例如,nvm install 14.18.0nvm install 14.18.1 将安装两个独立的节点环境。

在 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)

w
wortwart

就我而言,我在由 nvm 设置为版本 10 的节点环境中将 npm 从版本 6 更新到了 8。这导致 npm 不再工作,使我在这里找到的答案毫无用处。

我终于求助于清除 nvm 文件夹:

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

之后我可以再次使用 nvm 和 npm。我的教训:永远不要使用 npm 安装新的 npm 版本。 nvm install-latest-npm 似乎可以让您在旧环境中安全地更新。


S
Syed Haseeb

更改版本的简单方法是首先使用 nvm ls 检查您的可用版本,然后从列表中选择版本 nvm 使用版本


A
Andrey Gritsay

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

➜  ~ which npm
/opt/homebrew/bin/npm

然后运行

npm install npm

macOS 11.2.2,M1 (arm64)


S
Shrinivas Kalangutkar

NVM 在 Windows 上的安装和使用

以下是在 Windows 上安装 NVM 的步骤:

NVM 代表节点版本管理器,这将有助于切换您的节点版本以供特定用途。它还允许用户使用多个 npm 和节点版本。

安装 nvm 设置。使用命令“nvm list”查看已安装节点版本列表。输入“nvm use version number[6.9.3]”切换版本。对于more info