当在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
你知道我哪里做错了吗?
在Ubuntu上,如果你运行一个非交互的shell,比如cronjob, init或者upstart脚本,就会有一个潜在的问题。
Ubuntu默认的.bashrc在顶部有这个保护,如果shell是非交互式的,它会提前退出:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
因此,为了为非交互式脚本加载NVM,可以编辑~/。将NVM的init移到文件的顶部,就在guard的上面。
更安全的方法是复制NVM init,使其出现两次。这将解决其他答案中提到的问题,当其他行在NVM之后修改PATH时。NVM似乎并不介意被运行两次,尽管它确实会降低shell启动速度。
在Ubuntu上,如果你运行一个非交互的shell,比如cronjob, init或者upstart脚本,就会有一个潜在的问题。
Ubuntu默认的.bashrc在顶部有这个保护,如果shell是非交互式的,它会提前退出:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
因此,为了为非交互式脚本加载NVM,可以编辑~/。将NVM的init移到文件的顶部,就在guard的上面。
更安全的方法是复制NVM init,使其出现两次。这将解决其他答案中提到的问题,当其他行在NVM之后修改PATH时。NVM似乎并不介意被运行两次,尽管它确实会降低shell启动速度。