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

设置default为稳定版本(而不是指定版本):

nvm alias default stable

列出已安装版本:

nvm list

从v6.2.0开始,它看起来像这样:

$ nvm list
         v4.4.2
->       v6.2.0
default -> stable (-> v6.2.0)
node -> stable (-> v6.2.0) (default)
stable -> 6.2 (-> v6.2.0) (default)
iojs -> N/A (default)

其他回答

nvm通过改变PATH变量来完成它的工作,所以你需要确保在获取nvm.sh脚本后,你没有以某种方式将你的PATH更改为其他东西。

在我的例子中,nvm.sh在.bashrc中被调用,但随后PATH变量在.bash_profile中被更新,这导致我的会话在nvm节点之前找到系统节点。

$ nvm alias default {NODE_VERSION}

当我们使用上面的命令时,只更新节点版本,但NPM仍然使用旧版本。

这里是更新节点和npm的另一个解决方案,在我的情况下,我想使用节点8.9.4,我已经使用了下面的命令。

$ nvm use default 8.9.4

该命令返回输出。

现在使用节点v8.9.4 (npm v5.6.0)

安装任何版本后运行此命令,

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local

该命令将通过nvm激活的任何版本的节点复制到/usr/local/目录中,并设置权限,以便所有用户都可以访问它们。

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

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

安装最新的稳定版本:

nvm install stable

设置default为稳定版本(而不是指定版本):

nvm alias default stable

列出已安装版本:

nvm list

从v6.2.0开始,它看起来像这样:

$ nvm list
         v4.4.2
->       v6.2.0
default -> stable (-> v6.2.0)
node -> stable (-> v6.2.0) (default)
stable -> 6.2 (-> v6.2.0) (default)
iojs -> N/A (default)