繁体   English   中英

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

[英]How can I change the version of npm using nvm?

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

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

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

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

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

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

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

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

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

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

简单的

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


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


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

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

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 ,它现在应该可以工作了。

nvm 现在有一个更新 npm 的命令。 它是nvm install-latest-npmnpm install --latest-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

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

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

nvm use 7.8.0

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

npm install -g npm@5.0.3

在基于 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
  1. 从这里找到要使用的节点和 npm 版本https://nodejs.org/en/download/releases/
  2. nvm use 8.11.4
  3. 您已经获得了节点为 8.11.4 的 npm 5.6

仅 go 与nvm use node_version

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

export npm_install="2.14.14"

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

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

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

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

安装 n

>> npm install -g n

切换版本

>> n latest

切换到特定版本

>> n 10.16.0

npm i -g npm怎么样? 您是否也尝试运行它?

上述说明略有不同,对我有用。 (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

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

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

安装和升级

您可以使用 nvm 安装两个版本的 node,并在每个 node 环境上安装不同版本的 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)

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

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

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

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

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

For some reason npm install -g npm@XXX didn't work, so I've changed version of npm in package.json in npm folder

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

然后运行

npm install npm

macOS 11.2.2,M1 (arm64)

为了在使用 nvm 时更改 npm 版本,您必须仅在所需节点版本的文件夹中安装 npm 版本。 例如,如果要安装 npm 版本 8.12.1,则必须在节点版本文件夹中进行。

如果你在全球范围内这样做,它将不起作用。

解决:

  • 我使用 nvm for Windows 安装了最新版本的节点,同时也安装了最新版本的 npm。
  • 我从 node_modules 文件夹中删除了 npm 目录,并将其替换为最新节点安装中的新版本。

这允许我将最新版本的 npm 与以前版本的节点一起使用,并解决了我遇到的问题。

Windows 上的 NVM 安装和使用

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

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

安装 nvm 设置。 使用命令“nvm list”查看已安装节点版本列表。 输入“nvm use version number[6.9.3]”切换版本。 欲了解更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM