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

你知道我哪里做错了吗?


当前回答

下面是一个简单的说明:

1)安装:

nvm install 8.10.0

2)每个终端使用一次

nvm use 8.10.0

3)所有终端设置为默认值

nvm alias default 8.10.0

您可能需要使用根权限来执行这些操作。

不要忘记查看nvm文档以获得更多信息。

还要注意,您可能需要为IDE指定节点版本:

其他回答

试试nvm alias default。例如:

$ NVM别名默认为0.12.7

这将设置shell中的默认节点版本。然后通过关闭shell窗口,打开一个新的窗口来验证更改是否持续,然后: 节点——版本

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

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

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

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

$ nvm alias default {NODE_VERSION}

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

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

$ nvm use default 8.9.4

该命令返回输出。

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

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