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


当前回答

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

其他回答

这对我来说很有效。

nvm use default v16

这对我没有任何帮助

nvm alias default v16

请将默认版本修改为最新的LTS版本 NVM别名默认lts/*

如果你想要更新你的版本,你可以通过执行nvm install lts/*——reinstall-packages-from=lts/*来手动升级全局版本,或者每周执行一次cron作业

——reinstall-packages-from=lts/*用于在每次更改版本时重新安装全局包

nvm别名默认v14.17.5

   mazin ~  nvm ls
           v10.15.1
    ->     v12.19.0
           v14.17.5
           v16.14.0
    default -> 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 14
    Now using node v14.17.5 (npm v8.7.0)

     mazin@zhihongtongxue  ~  nvm ls
           v10.15.1
           v12.19.0
    ->     v14.17.5
           v16.14.0
    default -> 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 14
    default -> 14 (-> v14.17.5)

     mazin ~  nvm ls
           v10.15.1
           v12.19.0
    ->     v14.17.5
           v16.14.0
    default -> 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

因为上面有很多关于默认别名的答案,有人仍然不能在新终端上得到正确的版本,我的答案在这里。

当您在shell rc文件(如~/.bashrc)中添加源$NVM_DIR/nvm.sh时,它将首先检查$ path环境变量中是否有nvm版本的节点路径,如/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

# 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

NVM别名默认<节点版本号>

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