Mac中使用 nvm 管理 node 版本,在使用指令:nvm use XXX 切换版本之后。
关闭终端,再次打开,输入 node -v 还是得到之前的 node 版本。
原因:
lihaili@192 ~ % nvm use 18.16.0
Now using node v18.16.0 (npm v9.5.1)
lihaili@192 ~ % nvm list
v16.19.1
-> v18.16.0
default -> v16.19.1
node -> stable (-> v18.16.0) (default)
stable -> 18.16 (-> v18.16.0) (default)
iojs -> N/A (default)
lts/* -> lts/iron (-> N/A)
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.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.18.2 (-> N/A)
lts/iron -> v20.9.0 (-> N/A)
lihaili@192 ~ % nvm alias default 18.16.0
default -> 18.16.0 (-> v18.16.0)
再查看
lihaili@192 ~ % nvm list
v16.19.1
-> v18.16.0
default -> 18.16.0 (-> v18.16.0)
node -> stable (-> v18.16.0) (default)
stable -> 18.16 (-> v18.16.0) (default)
iojs -> N/A (default)
lts/* -> lts/iron (-> N/A)
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.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.18.2 (-> N/A)
lts/iron -> v20.9.0 (-> N/A)
在这里这个 default 中有个 node 的版本号,使用 nvm use 时,没法修改这个版本号。
解决方案:
使用 nvm alias default XXX 指令设置默认 node 版本。
目前看来,Mac 中通过 nvm 长期有效的切换 node 版本可能需要两个指令:
1,nvm use XXX(只对当前终端窗口有效)
2,nvm alias default XXX(长期有效,即使关闭终端窗口后,再打开一个新的终端窗口)