ChatGPT解决这个技术问题 Extra ChatGPT

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

我已经安装了具有两个节点版本的 nvm(带有 zsh shell 的 ubuntu):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


L
LJHarb

(这里是 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

另外: 只要您不安装新版本,别名就可以工作。安装新节点后,该节点将成为您当前要使用的节点。因此,如果您想防止这种行为,您必须在每次安装后显式设置 nvm 别名 default desiredVersionOfNode 或重新打开终端。
使用 nvm alias default node 将“最新”设为默认值。
执行 nvm alias default 不会做任何事情。 “默认”标签发生了变化,但新的 shell 仍在使用非期望版本。我发现卸载不需要的版本有效。
nvm alias default node 使用您计算机上安装的最新版本的 Node。请记住在第一个命令之后使用 nvm use node(或您要使用的任何 Node 版本)来实际更改版本。我的示例(我使用版本 13 作为默认版本,但在机器上有 15 并希望将默认设置为最新版本的 Node):nvm alias default node nvm use node 就像使用(在我的情况下):nvm alias default 15 nvm use 15
可能只想使用最新的长期稳定版本。 nvm alias default lts/*
D
Dipesh Yadav

假设要将默认版本设为 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 别名默认 10.19.0 没有“v”
a
alltozall20381

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

nvm alias default node

然后你需要运行

nvm use default

或退出并打开一个新标签


询问节点 6,您的解决方案将选择要使用的最后一个节点稳定版本。所以它不会使用特定的 6 版本
尽管这非常有用,但这根本不能回答问题。
这给了我一条消息“您的用户的 .npmrc 文件 (${HOME}/.npmrc) 具有 globalconfig 和/或 prefix 设置,它们与 nvm 不兼容。运行 nvm use --delete-prefix v15.13.0 以取消设置。”我最终运行了建议的命令并且它有效。
你是第一个告诉我运行 nvm use default 的答案,这是我所缺少的。
P
Paul Verest

如果你只想切换一次使用这个

nvm use 12.x

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

nvm use default 12.x 

或者

nvm alias default 12.x

A
August Gong

你也可以这样:

$ nvm alias default lts/fermium

有没有办法针对最新版本?例如 nvm alias default lts/latest
尝试使用 nvm alias default lts/*
R
Rishabh B

警告:此答案仅适用于 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 终端上执行以下步骤:

运行命令:nvm alias default 13.10.1

这将使 v13.10.1 的默认点为...

default -> 13.10.1 (-> v13.10.1)

打开终端的新实例。现在在这里检查节点版本...

节点-v

你会得到...

v13.10.1

nvm list 还将显示新的默认版本。非虚拟机列表

只是一个信息: 上面示例中的 NodeJS 版本会有不同的 npm 版本。您可以通过运行在终端中交叉验证它 npm -v


d
dolar

简而言之,使用 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/

M
Maxime

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

nvm alias default 'lts/*'

K
Kyle Chadha

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


M
Maddu Swaroop

首先检查可用版本

nvm list

然后使用设置默认版本

nvm alias default lts/**

https://i.stack.imgur.com/zXsPf.png


I
Ingun전인건

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


我在 WSL 上也是如此。我没有 brew 所以我使用了“sudo apt-get purge --auto-remove nodejs”
@LDW 评论在 WSL 上也为我完成了这项工作。
H
Harrison Cramer

nvm alias default 16(其中“16”是您要使用的版本)但如果您是从 https://nodejs.org/en/download/ 安装节点,我建议您先将其删除。对于 m1 或 m1 pro 芯片,我建议您遵循以下解决方案:https://www.youtube.com/watch?v=fULL8QiPEU4


o
okwyvic

这对我有用。

nvm use default v16

这对我没有任何帮助

nvm alias default v16

P
Paul Weber

当前的答案并没有解决我的问题,因为我在 /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

B
Benos

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

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

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


Y
Yuto

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

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

您可以使用 nvm list 检查您的默认列表


R
Rajbir

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

nvm install 12.13.1 然后,nvm alias default 12.13.1


B
Brandon Austin

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


t
tianjianchn

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

当您在 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 it
source $NVM_DIR/nvm.sh

# use default alias
nvm use default

# or if you prefer to use .nvmrc prior to default, then
test -f .nvmrc && nvm use || nvm use default

P
Pushpendu Ghosh

nvm alias default <node version>

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


这个“新”答案所做的唯一一件事就是重复一半其他答案已经说过的话,包括 accepted answer