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

我安装了nvm(带有zsh shell的ubuntu),有两个节点版本:v6.11.5v9.0.0,nvm的默认版本是v9.0.0

每次我需要更改节点版本时

$ nvm listv6.11.5->       v9.0.0systemdefault -> node (-> v9.0.0)node -> stable (-> v9.0.0) (default)stable -> 9.0 (-> v9.0.0) (default)

$ nvm v6

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

769911 次浏览

(此处为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

假设要将默认版本设为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 likenvm install 10.19.0
# Set 10.19.0 (or another version) as defaultnvm 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安装12.13.1然后,nvm别名默认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-systemsudo mv /usr/bin/node /usr/bin/node-systemnvm use nodeNow using node v12.20.1 (npm v6.14.10)which node/home/paul/.nvm/versions/node/v12.20.1/bin/nodesudo ln -s /home/paul/.nvm/versions/node/v12.20.1/bin/node /usr/bin/node

然后打开一个新的shell

node -vv12.20.1

警报:此答案仅适用于MacOS

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

而且,v15.4.0是默认值

> nvm listv13.10.1->      v15.4.0systemdefault -> 15.4.0 (-> v15.4.0)

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

在您的Mac终端上执行以下步骤:

  1. 运行命令:

    nvm别名默认13.10.1

这将使默认点v13.10.1作为…

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

node-v

你会得到…

v13.10.1
  1. nvm列表也将显示新的默认版本。

    nvm列表

只是一个信息:上面示例的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/之前安装节点,我建议您先将其删除。对于m1或m1 pro芯片,我建议您遵循此解决方案:https://www.youtube.com/watch?v=fULL8QiPEU4

对于那些在VSCode终端中测试这个并且即使在终止/重新启动终端后仍然看到旧版本的人-VS代码以某种方式缓存旧版本。关闭/重新打开完整的VSCode窗口,您应该会看到带有node -v的正确版本。

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

nvm alias default 'lts/*'

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

首先检查可用版本

nvm list

然后使用设置默认版本

nvm alias default lts/**

在此处输入图片描述

在Nutshell中使用NVM的步骤

对于Mac

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

为了Linux

sudo apt install curl gitcurl -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/

这对我来说是有效的。

nvm use default v16

这对我没有任何帮助

nvm alias default v16

nvm alias default <node version>

这将使<node version>成为默认值。

由于上面有很多关于默认别名的答案,并且有人仍然无法在新终端中获得正确的版本,我的答案在这里。

当您在shell rc文件(如~/. bashrc)中添加source $NVM_DIR/nvm.sh时,它将首先检查$PATH环境变量中是否存在nvm-version节点路径,如/usr/local/nvm/versions/node/v14.1.0/bin。如果有,nvm不会使用默认别名。

所以首先你应该检查为什么$PATH中有节点路径。如果你能得到原因(比如在rc文件中显式运行nvm use 16),只需删除它。

如果你不能或只是想保留它,那么另一个解决方案在这里:

# that's your previous usage, keep itsource $NVM_DIR/nvm.sh
# use default aliasnvm use default
# or if you prefer to use .nvmrc prior to default, thentest -f .nvmrc && nvm use || nvm use default

nvm别名默认v14.17.5

   mazin ~  nvm lsv10.15.1->     v12.19.0v14.17.5v16.14.0default -> 12 (-> v12.19.0)node -> stable (-> v16.14.0) (default)stable -> 16.14 (-> v16.14.0) (default)iojs -> N/A (default)unstable -> N/A (default)lts/* -> lts/gallium (-> v16.14.0)lts/argon -> v4.9.1 (-> N/A)lts/boron -> v6.17.1 (-> N/A)lts/carbon -> v8.17.0 (-> N/A)lts/dubnium -> v10.24.1 (-> N/A)lts/erbium -> v12.22.10 (-> N/A)lts/fermium -> v14.19.0 (-> N/A)lts/gallium -> v16.14.0
mazin ~  nvm use 14Now using node v14.17.5 (npm v8.7.0)
mazin@zhihongtongxue  ~  nvm lsv10.15.1v12.19.0->     v14.17.5v16.14.0default -> 12 (-> v12.19.0)node -> stable (-> v16.14.0) (default)stable -> 16.14 (-> v16.14.0) (default)iojs -> N/A (default)unstable -> N/A (default)lts/* -> lts/gallium (-> v16.14.0)lts/argon -> v4.9.1 (-> N/A)lts/boron -> v6.17.1 (-> N/A)lts/carbon -> v8.17.0 (-> N/A)lts/dubnium -> v10.24.1 (-> N/A)lts/erbium -> v12.22.10 (-> N/A)lts/fermium -> v14.19.0 (-> N/A)lts/gallium -> v16.14.0
mazin ~  nvm alias default 14default -> 14 (-> v14.17.5)
mazin ~  nvm lsv10.15.1v12.19.0->     v14.17.5v16.14.0default -> 14 (-> v14.17.5)node -> stable (-> v16.14.0) (default)stable -> 16.14 (-> v16.14.0) (default)iojs -> N/A (default)unstable -> N/A (default)lts/* -> lts/gallium (-> v16.14.0)lts/argon -> v4.9.1 (-> N/A)lts/boron -> v6.17.1 (-> N/A)lts/carbon -> v8.17.0 (-> N/A)lts/dubnium -> v10.24.1 (-> N/A)lts/erbium -> v12.22.10 (-> N/A)lts/fermium -> v14.19.0 (-> N/A)lts/gallium -> v16.14.0

在我的情况下Windows 11nvm 1.1.9和使用gitbash

这些工作对我来说(必须以管理员身份运行

[最新版本]

nvm use latest

[特定版本]

nvm use 18.10.0

这些对我没用

nvm use 18->返回node vv18.10.0 (64-bit) is not installed or cannot be found.

nvm use default 18->返回Unrecognized version: "default"

nvm alias ...->似乎alias命令在此nvm版本中不受支持

希望能有所帮助:)

仅供参考,tmux也缓存旧版本(如上面提到的VSCode)。重新启动tmux然后为每个窗口使用新版本。