我一直在使用 NVM 为我的节点工作安装最新版本的 nodeJS。它完全适合安装单独的版本并在它们之间切换。它还会在每个本地 .../bin 文件夹中安装最新版本的 NPM 以及节点二进制文件。但是,似乎没有任何方法可以切换我正在使用的 NPM 版本(或者至少我无法弄清楚)。
我能想到的唯一解决方案是删除它默认使用的二进制文件(这是我第一次使用 NVM 安装节点时安装的 NPM),并在其位置放置最新的 NPM 二进制文件。但是,我想知道是否有更好的方法可以做到这一点。
编辑:自从第一次回答这个问题几年以来,如 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 在评论中指出这一点。
npm install npm@x.x.x -g
npm install npm@5.4.0 -g
-g
标志,无论您使用 nvm 安装了哪个版本的 Node,此命令都将起作用。当您在 nvm 中切换版本时,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
参数以跟随任何重定向):
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
curl -L
跟随重定向。
nvm 现在有一个更新 npm 的命令。它是 nvm install-latest-npm
或 npm install --latest-npm
。
nvm help
控制台输出:--latest-npm After installing, attempt to upgrade to the latest working npm on the given node version
不过,我在 nvm
文档中没有找到对此的引用。如果你找到了请分享。
我在 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
繁荣,我又回来做生意了。
mv
更改为 ren
,将 rm
更改为 del
和 rmdir
。
npx
和 npx.cmd
。不确定哪个版本引入了 npx。
在 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
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。
从这里找到您想要使用的节点和 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 版本将是最新的。
通过查看 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。哇。
我们可以使用 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 安装两个版本的节点,并在每个节点环境上安装不同版本的 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 使用版本
由于某种原因 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)
NVM 在 Windows 上的安装和使用
以下是在 Windows 上安装 NVM 的步骤:
NVM 代表节点版本管理器,这将有助于切换您的节点版本以供特定用途。它还允许用户使用多个 npm 和节点版本。
安装 nvm 设置。使用命令“nvm list”查看已安装节点版本列表。输入“nvm use version number[6.9.3]”切换版本。对于more info
不定期副业成功案例分享
which npm
。npm install npm@major.minor.patch
以获取该特定版本,例如npm@3.10.9
cd ~/AppData/Roaming/nvm/v5.10.1
。nvm install-latest-npm
由 samlandfried 在下面回答 -stackoverflow.com/a/47519162/5991278