Pab*_*iel 78 version node.js nvm
我已经安装了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
Run Code Online (Sandbox Code Playgroud)
我怎么能改变nvm版本默认定义v6.11.5?
LJH*_*arb 153
(nvm维护者在这里)
nvm alias default 6.11.5
如果你想把它挂到那个特定的版本.
你也可以nvm alias default 6
.
无论哪种方式,您都希望升级到最新版本nvm
(撰写本文时为v0.33.11)
小智 82
假设要将默认版本设为 10.19.0。
nvm alias default v10.19.0
Run Code Online (Sandbox Code Playgroud)
但它会给出以下错误
! WARNING: Version 'v10.19.0' does not exist.
default -> v10.19.0 (-> N/A)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您需要按以下顺序运行两个命令
# 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
Run Code Online (Sandbox Code Playgroud)
okw*_*vic 45
这对我有用。
nvm use default v16
Run Code Online (Sandbox Code Playgroud)
这对我没有任何帮助
nvm alias default v16
Run Code Online (Sandbox Code Playgroud)
Kyl*_*dha 38
对于那些在VSCode 终端中进行测试并且即使在终止/重新启动终端后仍然看到旧版本的人来说,VS Code 会以某种方式缓存旧版本。关闭/重新打开完整的 VSCode 窗口,您应该会看到带有node -v
.
cpr*_*ack 37
如果您只想将主要版本作为默认版本,则可以使用以下方法:
% nvm alias default 18
Run Code Online (Sandbox Code Playgroud)
要检查您当前的默认值:
% nvm alias default
default -> 18 (-> v18.12.1)
Run Code Online (Sandbox Code Playgroud)
重启终端即可应用。
小智 32
这会将默认设置为节点的最新版本
nvm alias default node
Run Code Online (Sandbox Code Playgroud)
然后你需要运行
nvm use default
Run Code Online (Sandbox Code Playgroud)
或退出并打开一个新标签
Ris*_*man 22
警告:此答案仅适用于 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)
Run Code Online (Sandbox Code Playgroud)
并且,您想将默认值切换到v13.10.1
在 Mac 终端上执行以下步骤:
运行命令:
nvm 别名默认 13.10.1
这将使默认指向 v13.10.1...
default -> 13.10.1 (-> v13.10.1)
Run Code Online (Sandbox Code Playgroud)
节点-v
你会得到...
v13.10.1
Run Code Online (Sandbox Code Playgroud)
nvm list 还将显示新的默认版本。
nvm列表
只是一个信息: 上面示例中的 NodeJS 版本将有不同的 npm 版本。您可以通过运行在终端中交叉验证它 npm -v
小智 19
简而言之,使用 NVM 的步骤
对于苹果机
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
Run Code Online (Sandbox Code Playgroud)
对于Linux
sudo apt install curl git
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install nodejs
Run Code Online (Sandbox Code Playgroud)
对于 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/
Run Code Online (Sandbox Code Playgroud)
Max*_*ime 17
运行后我做了类似的事情nvm install --lts
:
nvm alias default 'lts/*'
Run Code Online (Sandbox Code Playgroud)
Ing*_*전인건 14
我尝试了获得最多支持的答案,但\xe2\x80\x99对我不起作用。\n问题是我通过brew安装了另一个节点,NVM将其识别为系统节点。NVM 优先考虑系统节点而不是默认别名。我所要做的就是卸载系统节点(brew uninstall node
)。
Tej*_*iri 13
如果您只想切换一次,请使用此
nvm use 12.x
Run Code Online (Sandbox Code Playgroud)
否则,如果要切换默认节点版本,请使用
nvm use default 12.x or nvm alias default 12.x
Run Code Online (Sandbox Code Playgroud)
Mad*_*oop 11
首先检查可用版本
nvm list
Run Code Online (Sandbox Code Playgroud)
然后使用设置默认版本
nvm alias default lts/**
Run Code Online (Sandbox Code Playgroud)
小智 11
nvm 别名默认 v14.17.5
\n mazin\xee\x82\xb0 ~ \xee\x82\xb0 nvm ls\n v10.15.1\n -> v12.19.0\n v14.17.5\n v16.14.0\n default -> 12 (-> v12.19.0)\n node -> stable (-> v16.14.0) (default)\n stable -> 16.14 (-> v16.14.0) (default)\n iojs -> N/A (default)\n unstable -> N/A (default)\n lts/* -> lts/gallium (-> v16.14.0)\n lts/argon -> v4.9.1 (-> N/A)\n lts/boron -> v6.17.1 (-> N/A)\n lts/carbon -> v8.17.0 (-> N/A)\n lts/dubnium -> v10.24.1 (-> N/A)\n lts/erbium -> v12.22.10 (-> N/A)\n lts/fermium -> v14.19.0 (-> N/A)\n lts/gallium -> v16.14.0\n\n mazin\xee\x82\xb0 ~ \xee\x82\xb0 nvm use 14\n Now using node v14.17.5 (npm v8.7.0)\n\n mazin@zhihongtongxue \xee\x82\xb0 ~ \xee\x82\xb0 nvm ls\n v10.15.1\n v12.19.0\n -> v14.17.5\n v16.14.0\n default -> 12 (-> v12.19.0)\n node -> stable (-> v16.14.0) (default)\n stable -> 16.14 (-> v16.14.0) (default)\n iojs -> N/A (default)\n unstable -> N/A (default)\n lts/* -> lts/gallium (-> v16.14.0)\n lts/argon -> v4.9.1 (-> N/A)\n lts/boron -> v6.17.1 (-> N/A)\n lts/carbon -> v8.17.0 (-> N/A)\n lts/dubnium -> v10.24.1 (-> N/A)\n lts/erbium -> v12.22.10 (-> N/A)\n lts/fermium -> v14.19.0 (-> N/A)\n lts/gallium -> v16.14.0\n\n mazin\xee\x82\xb0 ~ \xee\x82\xb0 nvm alias default 14\n default -> 14 (-> v14.17.5)\n\n mazin\xee\x82\xb0 ~ \xee\x82\xb0 nvm ls\n v10.15.1\n v12.19.0\n -> v14.17.5\n v16.14.0\n default -> 14 (-> v14.17.5)\n node -> stable (-> v16.14.0) (default)\n stable -> 16.14 (-> v16.14.0) (default)\n iojs -> N/A (default)\n unstable -> N/A (default)\n lts/* -> lts/gallium (-> v16.14.0)\n lts/argon -> v4.9.1 (-> N/A)\n lts/boron -> v6.17.1 (-> N/A)\n lts/carbon -> v8.17.0 (-> N/A)\n lts/dubnium -> v10.24.1 (-> N/A)\n lts/erbium -> v12.22.10 (-> N/A)\n lts/fermium -> v14.19.0 (-> N/A)\n lts/gallium -> v16.14.0\n
Run Code Online (Sandbox Code Playgroud)\n
小智 7
nvm alias default 16
(其中“16”是您要使用的版本)但如果您是从https://nodejs.org/en/download/安装节点,那么我建议您先将其删除。对于 m1 或 m1 pro 芯片,我建议您遵循以下解决方案:https://www.youtube.com/watch?v =fULL8QiPEU4
由于上面有很多答案都讨论了默认别名,并且有人仍然无法在新终端中获得正确的版本,所以我的答案就在这里。
当你在 shell 中添加source $NVM_DIR/nvm.sh
rc 文件(如 ~/.bashrc)时,它会首先检查 $PATH 环境变量中是否存在 nvm-version 节点路径,如/usr/local/nvm/versions/node/v14.1.0/bin
. 如果有的话,nvm 将不会使用默认别名。
所以首先你应该检查为什么$PATH中有节点路径。如果您能找到原因(例如nvm use 16
在另一个 rc 文件或脚本文件中显式运行),只需将其删除即可。
如果你找不到理由或者只是想保留它,那么另一个解决方案是:
# that's your previous usage, keep it
source $NVM_DIR/nvm.sh
# FORCE to use default alias
nvm use default
# or if you prefer to forcedly use .nvmrc prior to default, then
test -f .nvmrc && nvm use || nvm use default
Run Code Online (Sandbox Code Playgroud)
当前的答案并没有解决我的问题,因为我在 /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
Run Code Online (Sandbox Code Playgroud)
然后打开一个新的shell
node -v
v12.20.1
Run Code Online (Sandbox Code Playgroud)
更改默认版本以使用最新的 LTS 版本
nvm alias default lts/*
nvm install lts/* --reinstall-packages-from=lts/*
如果您想让版本保持最新,您可以通过每周 cron 作业手动升级全局版本
--reinstall-packages-from=lts/*
每次更改版本时都可以重新安装全局包
我使用了已接受的答案,如下所示:
$ nvm alias default 12.22.12
Run Code Online (Sandbox Code Playgroud)
但是,当我关闭并打开终端时,它始终默认为以前的版本。
至少对于Linux系统(我用的是Fedora)来说非常重要的一件事,就是必须重启机器才能生效。之后,nvm 默认按预期工作。