Node.js 如何使用nvm更改npm的版本?
我一直在使用NVM为我的节点工作安装最新版本的nodeJS。对于安装不同的版本并在它们之间切换,它完全可以正常工作。它还将在每个本地…/bin文件夹中安装最新版本的NPM以及节点二进制文件。然而,似乎没有任何方法可以切换我正在使用的NPM版本(或者至少我无法理解)Node.js 如何使用nvm更改npm的版本?,node.js,npm,Node.js,Npm,我一直在使用NVM为我的节点工作安装最新版本的nodeJS。对于安装不同的版本并在它们之间切换,它完全可以正常工作。它还将在每个本地…/bin文件夹中安装最新版本的NPM以及节点二进制文件。然而,似乎没有任何方法可以切换我正在使用的NPM版本(或者至少我无法理解) 我能想到的唯一解决方案是删除它默认使用的二进制文件(这是我第一次使用NVM安装node时安装的NPM),并在其位置放置最新的NPM二进制文件。然而,我想知道是否有更好的方法可以做到这一点。nvm不处理npm 因此,如果您想安装node
我能想到的唯一解决方案是删除它默认使用的二进制文件(这是我第一次使用NVM安装node时安装的NPM),并在其位置放置最新的NPM二进制文件。然而,我想知道是否有更好的方法可以做到这一点。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
参数以遵循任何重定向):
这将检测节点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 v0.4.12,它现在应该可以工作了。编辑:自首次回答此问题几年后,如中所述,现在有一个命令用于此:
nvm现在有一个更新npm的命令。它是
nvm安装最新的npm
或nvm安装--最新的npm
nvm安装最新的npm
:尝试在当前节点版本上升级到最新的工作npm
nvm安装--最新的npm
:安装后,尝试升级到给定节点版本上的最新工作npm
下面是对该问题正确答案的先前修订
在这个问题被首次提出三年后,现在的答案似乎简单多了。只需更新nvm安装的版本,它位于~/.nvm/versions/node/[您的版本]/lib/node\u modules/npm
中
我刚刚安装了node 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在评论中指出这一点。在基于linux的OSs上更改npm版本还不是一个简单的单命令过程。为了切换回旧版本的npm,我做了以下工作。这应该可以让任何版本的npm正常工作。首先安装要使用的npm版本:
sudo npm install -g npm@X.X.X
卸下/usr/local/bin中的sym链接/
sudo rm /usr/local/bin/npm
使用您安装的所需版本的npm重新创建sym链接
sudo ln -s /usr/bin/npm@X.X.X /usr/local/bin/npm
通过查看www.npmjs.com/install.sh,我发现有一种通过设置环境变量来安装特定版本的方法
export npm\u install=“2.14.14”
然后按照npmjs.com上的说明运行下载脚本:
curl-L|sh
如果忽略设置npm\u install变量,那么它将安装他们标记为最新的版本那么
npm i-g npm
呢?你也试过运行这个吗?nvm现在有一个更新npm的命令。这是nvm安装最新的npm或npm安装--最新的npm
在上述说明上有细微的变化,对我有用。(MacOS Sierra 10.12.6)
npm install npm@x.x.x -g
npm install npm@5.4.0 -g
在windows中,以管理员身份运行终端(以防像我一样存在权限问题)。然后使用特定的节点版本(如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
然后,我又开始工作了。在现有节点安装的基础上安装了
nvm windows之后,我遇到了同样的问题。解决方法就是按照说明进行操作:
您还应该删除现有的npm安装位置(例如。
“C:\Users\AppData\Roaming\npm”),以便nvm安装位置
将正确使用
在Windows上安装和使用NVM
以下是在Windows上安装NVM的步骤:
NVM代表节点版本管理器,它将帮助切换节点版本以供特定使用。它还允许用户使用多个npm和节点版本
安装nvm安装程序。
使用命令“nvm list”检查已安装节点版本的列表。
键入“nvm使用版本号[6.9.3]”切换版本。
为了
从这里查找要使用的节点和npm版本
nvm使用8.11.4
您已经获得了节点8.11.4的NPM5.6
只需使用nvm use node_version
更改版本的简单方法是首先使用
nvm ls
然后从列表中选择版本
nvm使用版本出于某种原因
npm安装-gnpm@X.X.X
不起作用,所以我在package.json
文件夹中更改了npm的版本
➜ ~ 哪个npm
/opt/homebrew/bin/npm
然后跑
npm安装npm
macOS 11.2.2,M1(arm64)为什么要更改NPM的版本,你不会安装任何只适用于旧版本NPM的软件包。在node 0.6之后,node附带了最新的NPM。所以,更改节点版本也会更改npm版本。除非它不通过NVM。是的,node附带了NPM,但这仅仅意味着它会在它旁边安装一个二进制文件。我可以在各自的文件夹中看到这两个二进制文件,但当我运行“NVMU”时
nvm use 7.8.0
npm install -g npm@5.0.3
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