[英]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-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
中。
我刚刚安装了节点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-npm
或npm 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
nvm use 8.11.4
仅 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.0
和nvm 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,则必须在节点版本文件夹中进行。
如果你在全球范围内这样做,它将不起作用。
解决:
这允许我将最新版本的 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.