当在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
你知道我哪里做错了吗?
在我的例子中,另一个程序向.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。在我看来,这是一个错误,但我可能是错的。