nvm在新的terminal会话中保持“遗忘”节点

在OS X中使用新的terminal会话时, nvm忘记节点版本,并且默认为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的brew版本:

 #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 alias default 。 例如:

$ nvm alias default 0.12.7

这将在shell中设置默认的节点版本。 然后通过closuresshell窗口,打开一个新窗口,然后validation更改是否持续: node --version

node本身的别名,以避免稍后更新默认别名和节点版本更新。

 nvm alias default node 

要安装最新的稳定版本:

 nvm install stable 

要将默认设置为稳定版本(而不是特定版本):

 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通过改变PATHvariables来完成它的工作,所以你需要确保你没有改变你的PATH到其他的东西,在findnvm.sh脚本之后。

在我的情况下,在.bashrc中调用nvm.sh,但是然后PATHvariables在.bash_profile中得到更新,这导致我的会话在nvm节点之前find系统节点。

评分最高的解决scheme似乎不适合我。 我的解决scheme如下:

  1. 卸载nvm完全使用自制软件: brew uninstall nvm
  2. 重新安装brew install nvm
  3. 在terminal中,按照下面的步骤(通过自制软件安装nvm时也列出这些):

    mkdir ~/.nvm cp $(brew --prefix nvm)/nvm-exec ~/.nvm/ export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh

上述步骤将NVM的工作目录添加到$ HOMEpath,将nvm-exec复制到NVM的工作目录,并添加到$ HOME / .bashrc,$ HOME / .zshrc或shell的等效configuration文件中。在使用自制软件安装的NVM上列出)

这个问题已经提到OSX,但它发生在我的Linux操作系统。 我尝试使用nvm alias default <version>但对于每个新的terminal会话使用的节点版本被遗忘。 所以,这是我想出的解决scheme。

请确保为节点版本设置默认别名 ,将以下代码放在.bashrc中,并将source .bashrc放入。

 export NVM_DIR="/home/bonnie/.nvm" ## If the file exists and is not empty if [ -s "$NVM_DIR/nvm.sh" ]; then ## Source it source "$NVM_DIR/nvm.sh" fi NODE_DEFAULT_VERSION=$(<"$NVM_DIR/alias/default") export PATH="$NVM_DIR/versions/node/$NODE_DEFAULT_VERSION/bin":$PATH 

描述性解决scheme链接

在安装任何版本后运行这个,

 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之前安装了节点检查您的〜/ .bash_profile中是否有如下所示的内容:

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

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