我已经安装了具有两个节点版本的 nvm(带有 zsh shell 的 ubuntu):v6.11.5
和 v9.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
或退出并打开一个新标签
globalconfig
和/或 prefix
设置,它们与 nvm 不兼容。运行 nvm use --delete-prefix v15.13.0
以取消设置。”我最终运行了建议的命令并且它有效。
nvm use default
的答案,这是我所缺少的。
如果你只想切换一次使用这个
nvm use 12.x
否则,如果您想切换默认节点版本,请使用
nvm use default 12.x
或者
nvm alias default 12.x
你也可以这样:
$ nvm alias default lts/fermium
nvm alias default lts/latest
?
nvm alias default lts/*
警告:此答案仅适用于 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
简而言之,使用 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/
我在运行 nvm install --lts
后做了类似的事情:
nvm alias default 'lts/*'
对于那些在 VSCode 终端 中测试并且即使在终止/重新启动终端后仍然看到旧版本的人——VS 代码以某种方式缓存旧版本。关闭/重新打开完整的 VSCode 窗口,您应该会看到带有 node -v
的正确版本。
首先检查可用版本
nvm list
然后使用设置默认版本
nvm alias default lts/**
https://i.stack.imgur.com/zXsPf.png
我尝试了最受好评的答案,但对我不起作用。问题是我通过 brew 安装了另一个节点,NVM 将其识别为系统节点。 NVM 将系统节点优先于默认别名。 我所要做的就是卸载系统节点 (brew uninstall node
)。
nvm alias default 16
(其中“16”是您要使用的版本)但如果您是从 https://nodejs.org/en/download/ 安装节点,我建议您先将其删除。对于 m1 或 m1 pro 芯片,我建议您遵循以下解决方案:https://www.youtube.com/watch?v=fULL8QiPEU4
这对我有用。
nvm use default v16
这对我没有任何帮助
nvm alias default v16
当前的答案并没有解决我的问题,因为我在 /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
更改默认版本以使用最新的 LTS 版本 nvm alias default lts/*
如果您想让您的版本保持最新,您可以通过执行 nvm install lts/* --reinstall-packages-from=lts/*
或每周 cron 作业手动升级全局版本
--reinstall-packages-from=lts/*
用于重新安装您每次更改版本时拥有的全局软件包
使用 nvm alias default 10.15.3
更改默认节点版本 *
(用您的默认版本号替换我的版本)
您可以使用 nvm list
检查您的默认列表
#为我工作 100% 按照此默认节点版本:
nvm install 12.13.1 然后,nvm alias default 12.13.1
确保全局安装了正确版本的节点。您的公司可能正在使用不同的版本。
由于上面有很多关于默认别名的答案,并且有人仍然无法在新终端中获得正确的版本,所以我的答案就在这里。
当您在 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
nvm alias default <node version>
这将使 <node version>
成为默认值。
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/*