如何使用 NVM 设置默认节点版本?

How can the default node version be set using NVM?

我已经安装了两个节点版本的 nvm(ubuntu 和 zsh shell):v6.11.5v9.0.0 并且 nvm 中的默认版本是 v9.0.0

每次需要更改节点版本

$ nvm list
         v6.11.5
->       v9.0.0
         system
default -> node (-> v9.0.0)
node -> stable (-> v9.0.0) (default)
stable -> 9.0 (-> v9.0.0) (default)


$ nvm v6

如何更改默认的 nvm 版本以定义 v6.11.5

(这里是 nvm 维护者)

nvm alias default 6.11.5 如果您希望它与特定版本挂钩。

你也可以nvm alias default 16.

无论哪种方式,您都需要升级到最新版本的 nvm(撰写本文时为 v0.33.11)

$ nvm alias default 16.14.2
# nvm set default node.js version 16.14.2

$ node -v
# v16.14.2

假设要将默认版本设置为 10.19.0。

nvm alias default v10.19.0

但是会报如下错误

! WARNING: Version 'v10.19.0' does not exist.
default -> v10.19.0 (-> N/A)

在那种情况下,您需要 运行 按以下顺序执行两个命令

# Install the version that you would like 
nvm install 10.19.0

# Set 10.19.0 (or another version) as default
nvm alias default 10.19.0

这会将默认设置为最新版本的节点

nvm alias default node

然后你需要运行

nvm use default

或退出并打开一个新标签

更改默认节点版本 nvm alias default 10.15.3 *

(用你的默认版本号替换我的版本)

您可以使用 nvm list

检查您的默认列表

你也可以这样:

$ nvm alias default lts/fermium

#100% 为我工作 按照此获取默认节点版本:

nvm install 12.13.1 then, nvm alias default 12.13.1

如果您只想切换一次,请使用此

nvm use 12.x

否则,如果您想切换默认节点版本,请使用

nvm use default 12.x 

nvm alias default 12.x

目前的答案并没有解决我的问题,因为我在 /usr/bin/node 和 /usr/local/bin/node 中安装了节点 - 所以系统总是先解决这些问题,而忽略了 nvm 版本。

我通过将现有版本移动到 /usr/bin/node-system 和 /usr/local/bin/node-system

解决了这个问题

然后我再也没有节点命令了,直到我使用 nvm use :(

我通过创建指向将由 nvm 安装的版本的符号链接解决了这个问题。

sudo mv /usr/local/bin/node /usr/local/bin/node-system    
sudo mv /usr/bin/node /usr/bin/node-system 
nvm use node
  Now using node v12.20.1 (npm v6.14.10)
which node
  /home/paul/.nvm/versions/node/v12.20.1/bin/node
sudo ln -s /home/paul/.nvm/versions/node/v12.20.1/bin/node /usr/bin/node

然后打开一个新的shell

node -v
  v12.20.1

警告:此答案仅适用于MacOS

假设您的 nvm 中有 2 个版本的 nodeJS,即 v13.10.1 & v15.4.0

而且, v15.4.0 是默认值

> nvm list
       v13.10.1
->      v15.4.0
         system
default -> 15.4.0 (-> v15.4.0)

并且,您想将默认设置切换为 v13.10.1

在您的 Mac 终端上按照以下步骤操作:

  1. 运行命令:

    nvm alias default 13.10.1

这将使默认指向 v13.10.1 作为...

default -> 13.10.1 (-> v13.10.1)
  1. 打开终端的新实例。现在在这里检查节点版本...

node -v

你会得到...

v13.10.1
  1. nvm list 也会显示新的默认版本。

    nvm list

只是一个信息: 以上示例中的 NodeJS 版本将具有不同的 npm 版本。您可以在终端中通过 运行 npm -v

进行交叉验证

我尝试了投票最多的答案,但对我不起作用。 问题是我通过 brew 安装了另一个节点,NVM 将其识别为系统节点。 NVM 将系统节点优先于默认别名。我所要做的就是卸载系统节点 (brew uninstall node)。

更改默认版本以使用最新的 LTS 版本 nvm alias default lts/*

您可以通过执行 nvm install lts/* --reinstall-packages-from=lts/* 或每周一次的 cron 作业来手动升级全局版本,如果您想使您的版本保持最新

--reinstall-packages-from=lts/* 用于重新安装您每次更改版本时拥有的全局包

nvm alias default 16(其中“16”是您要使用的版本)但是如果您从 https://nodejs.org/en/download/ before I would suggest you remove it first. For m1 or m1 pro chips, I suggest you follow this solution: https://www.youtube.com/watch?v=fULL8QiPEU4

安装节点

对于那些在 VSCode 终端 中进行测试并且即使在 killing/restarting 终端之后仍然看到旧版本的人——VS 代码以某种方式缓存了旧版本。 Close/reopen 你的完整 VSCode window 并且你应该看到 node -v 的正确版本。

我在 运行 之后做了类似的事情 nvm install --lts:

nvm alias default 'lts/*'

确保在全局安装了正确版本的节点。您的公司可能正在使用不同的版本。

首先检查可用版本

nvm list

然后使用

设置默认版本
nvm alias default lts/**

使用 NVM 的简要步骤

对于Mac

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.39.1/install.sh | bash
nvm install 16
nvm use 16
nvm alias default 16
npm install npm --global # Upgrade npm to the latest version

对于Linux

sudo apt install curl git
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install nodejs

对于Windows

Git's installer for Windows from below link

https://git-scm.com/download/win

node-v16.XX.XX-x64.msi from below link

https://nodejs.org/dist/latest-v16.x/