当在OS X中使用一个新的终端会话时,nvm会忘记节点版本并默认为零:

$nvm ls:

         .nvm
     v0.11.12
     v0.11.13

我必须在每个会话中一直按nvm use v.0.11.13:

         .nvm
     v0.11.12
->   v0.11.13

我已经尝试了brew安装和官方安装脚本。

我的.profile为酿造版本:

#nvm
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

对于install.sh脚本:

$ curl https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | bash

#nvm
export NVM_DIR="/Users/farhad/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

你知道我哪里做错了吗?


当前回答

下面是一个简单的说明:

1)安装:

nvm install 8.10.0

2)每个终端使用一次

nvm use 8.10.0

3)所有终端设置为默认值

nvm alias default 8.10.0

您可能需要使用根权限来执行这些操作。

不要忘记查看nvm文档以获得更多信息。

还要注意,您可能需要为IDE指定节点版本:

其他回答

节点本身的别名,以避免在以后更新节点版本时同时更新默认别名。

nvm alias default node

如果你也有SDKMAN…

不知何故,SDKMAN与我的NVM相冲突。如果你对此束手无策,仍然想不出来,我只是通过忽略SDKMAN中的“this MUST BE at the end OF the FILE…”并将NVM行放在它之后来修复它。

#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/Users/myname/.sdkman"
[[ -s "/Users/myname/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/myname/.sdkman/bin/sdkman-init.sh"

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

例如,执行nvm install 10.14, nvm将在当前shell会话中使用该版本,但它并不总是像你所期望的那样将其设置为未来会话的默认版本。在新的shell会话中获得的节点版本由nvm alias default决定。令人困惑的是,nvm install只会设置默认别名,如果它还没有设置。要得到预期的行为,请这样做:

nvm alias default ''; nvm install 10.14

这将确保下载该版本,并将其用于当前会话,并将其设置为未来会话的默认版本。

下面是一个简单的说明:

1)安装:

nvm install 8.10.0

2)每个终端使用一次

nvm use 8.10.0

3)所有终端设置为默认值

nvm alias default 8.10.0

您可能需要使用根权限来执行这些操作。

不要忘记查看nvm文档以获得更多信息。

还要注意,您可能需要为IDE指定节点版本:

正如在存储库的问题一节中提到的,nvm的使用仅适用于shell的生命周期。我发现这非常有用,但有时它可能会给你带来麻烦,实际上,当你工作在不同的代码库,需要不同版本的代码。 这是GitHub中相关讨论的链接