当在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

你知道我哪里做错了吗?


当前回答

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

其他回答

在我这端,我必须更改别名STABLE和DEFAULT

nvm alias stable {node_version}

nvm alias default {node_version}

由于某种原因,在我的~/。我发现配置文件是选择节点的版本,覆盖别名默认命令的nvm

只是另一件需要检查的事情。

我在这里找到了一条新路。使用交互式管理你的Node.js有助于。

在我的例子中,另一个程序向.bashrc添加了PATH更改

如果其他程序在nvm初始化后更改了PATH,那么nvm的PATH更改将被忘记,我们将获得PATH上的系统节点(或没有节点)。

解决方案是将nvm设置移到.bashrc的底部

### BAD .bashrc ###

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

# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"

解决方案:

### GOOD .bashrc ###

# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"

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

(这是在CentOS的bash 4.2.46。在我看来,这是一个错误,但我可能是错的。

出于某种原因,在我的.bashrc文件中,我发现了这个:

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

还不得不去掉——禁止使用的标志,我不记得一开始就把它挂在那里了…… 只是另一件需要检查的事情。