如何使用NVM设置默认的Node版本?

1539

我已经使用nvm在ubuntu上安装了两个node版本:v6.11.5v9.0.0,而nvm默认使用的是v9.0.0版本。

每次我需要更改node版本时

$ 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

28个回答

3118

(nvm维护者在此)

nvm alias default 6.11.5,如果您想将其固定在该特定版本。

您还可以执行 nvm alias default 16nvm alias default node

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

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

$ node -v
# v16.14.2

140
使用nvm alias default node将"latest"设置为默认版本。 - Ryan Wheale
64
运行 nvm alias default 命令没有任何作用。"default" 标签会改变,但新的 shell 仍然使用不需要的版本。我发现卸载不需要的版本可以解决这个问题。 - Jari Turkia
18
使用nvm alias default node命令可以使用计算机上安装的最新版本Node作为默认版本。请注意,在第一条命令之后,记得使用nvm use node(或者您想要使用的任何Node版本)来实际更改版本。例如,如果您正在使用版本13作为默认版本,但是机器上有版本15并且想要将默认版本设置为最新版本,则可以输入以下命令:nvm alias default node nvm use node 相当于在这种情况下,您需要执行:nvm alias default 15 nvm use 15 - Having a life on a beach
13
建议使用最新的长期稳定版。nvm alias default lts/* 可以设置默认版本为最新的长期稳定版。 - dijonkitchen
3
不带参数的 nvm use 命令将使用 .nvmrc 文件中指定的 Node.js 版本。 - LJHarb
显示剩余20条评论

197

假设你想将默认版本设置为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

4
nvm 别名 default 10.19.0 去掉 "v" - Lauris Kuznecovs
1
它可以在有或没有v的情况下工作。 - LJHarb
2
请不要忘记像@alltozall20381下面提到的那样使用nvm use default,或者启动一个新的shell。 - David

146

这将把默认设置为最新版本的node

nvm alias default node

然后你需要运行

nvm use default

或者退出并打开一个新选项卡


2
如果要求使用节点6,您的解决方案将选择最后一个稳定版本的节点来使用。因此它不会使用特定的6版本。 - MathKimRobin
1
尽管这很有用,但它根本没有回答问题。 - ljleb
这给了我一条消息:“您的用户 .npmrc 文件(${HOME}/.npmrc)具有globalconfig和/或prefix设置,这与nvm不兼容。运行“nvm use --delete-prefix v15.13.0”取消设置。”最终我运行了建议的命令,成功了。 - Nic Scozzaro
1
你的回答是第一个告诉我要运行 nvm use default 的,这正是我所缺少的。 - MrE
1
这对我有效,但仅在同一 shell 中有效。当我打开一个新的 shell 时,“node -v” 仍然会打印先前的版本... - Moritz
显示剩余2条评论

70

如果你只想切换一次,请使用此方法

nvm use 12.x

如果你想切换默认的节点版本,则使用以下命令:

nvm use default 12.x 
或者
nvm alias default 12.x

48
我试图在Mac上的VSCode终端中更改默认版本。没成功。我不得不从默认的系统终端运行这个命令。
nvm alias default v16.16.0

只是为了澄清一下,你也可以执行 "nvm alias default v16",这样它就会保持在 v16 的主要版本上。 - undefined

42

这是适合我的方法。

nvm use default v16

这对我没有任何帮助。

nvm alias default v16

4
请注意 v16 中的 v 很重要。如果没有它,对我来说就无法工作(即使在使用 nvm use 16 时可以工作)。 - marcelocra
可能需要重新启动终端。 - Sanka Sanjeewa

34

nvm alias default 16.10.0(你想要的Node.js版本)


33

对于在VSCode终端中测试,即使杀死/重启终端后仍然看到旧版本-- VS code以某种方式缓存了旧版本。关闭/重新打开您的完整VSCode窗口,然后使用node -v应该会看到正确的版本。


我对为什么会出现这种情况感到好奇,我能想到的最好的解释是,vscode进程在启动时必须将接收到的$PATH变量提供给新的shell。因为nvm通过更新$PATH来工作,所以在vscode中的新shell不会反映这些更改,需要完全重新启动才能生效。 - undefined

30

您也可能会喜欢这个:

$ nvm alias default lts/fermium

有没有办法针对最新版本进行定位?例如 nvm alias default lts/latest - MADforFUNandHappy
1
尝试使用 nvm alias default lts/* - Pablo Hernández - OtakuPahp
请注意,您需要先安装lts/fermium。此外,我发现“nvm alias default lts/”返回“警告:版本'lts/'不存在。” - Jono

21

提示:此答案仅适用于MacOS。

假设您在nvm中有两个版本的nodeJS,分别为v13.10.1v15.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列表还会显示新的默认版本。

    nvm list

只是一个信息:上面提到的NodeJS版本将具有不同的npm版本。您可以通过在终端中运行npm -v来交叉验证。


1
非常详细,谢谢。在Ubuntu 20.04上可行。 - JasonCoder
@JasonCoder,您好,非常感谢您指出Ubuntu的问题:) 实际上,我的回答也完全适用于Linux和Windows系统。在Windows上,用户可以通过GitBash执行这些步骤。 - Rishabh B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接