当在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启动速度。

其他回答

此外,如果你在nvm之前已经安装了节点,请检查~/。Bash_profile不包含如下内容:

export PATH=/bin:/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH

如果你有它,注释/删除它,nvm应该开始处理默认的节点版本。

如果你已经尝试了所有的方法仍然没有运气,你可以试试这个:_

1 -> 卸载 NVM

rm -rf ~/.nvm

按照下面的步骤移除npm依赖

3 ->安装NVM

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

4 ->设置“~/”。bash_profile配置

执行sudo nano ~/.bash_profile命令

复制粘贴如下

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

5 -> CONTROL + X保存更改

6 ->执行命令。~ / . bash_profile

现在你应该在你的机器上安装了nvm,要安装节点运行nvm install v7.8.0,这将是默认的节点版本,或者你可以安装任何版本的节点

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

在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启动速度。

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

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