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

你知道我哪里做错了吗?


当前回答

这个问题已经提到了OSX,但它发生在我的linux操作系统。 我尝试使用nvm alias default <version>,但是对于每个新的终端会话,所使用的节点版本都被忘记了。 这就是我算出来的解。

确保为节点版本设置一个默认别名,将以下代码放在.bashrc中,并将源代码放在.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

描述性解决方案link

其他回答

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

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

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

最受欢迎的解决方案似乎对我不起作用。我的解决方案如下:

使用自制程序卸载nvm 重新安装brew install nvm 在终端中,按照步骤操作 以下(这些也在通过自制程序安装NVM时列出): mkdir ~ / .nvm Cp $(brew——prefix nvm)/nvm-exec ~/.nvm/ 出口NVM_DIR = ~ / .nvm 来源$(brew——prefix nvm)/nvm.sh

上面列出的步骤将NVM的工作目录添加到$HOME路径,将NVM -exec复制到NVM的工作目录并添加到$HOME/。bashrc, ($ HOME /。Zshrc,或者您的shell的等效配置文件。(同样取自使用自制程序安装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)

如果你也有SDKMAN…

不知何故,SDKMAN与我的NVM相冲突。如果你对此束手无策,仍然想不出来,我只是通过忽略SDKMAN中的“this MUST BE at the end OF the FILE…”并将NVM行放在它之后来修复它。

#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/Users/myname/.sdkman"
[[ -s "/Users/myname/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/myname/.sdkman/bin/sdkman-init.sh"

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

参考:导致这个问题的原因是NPM试图访问/写入的文件夹不属于执行命令的用户

运行下面所述的命令,您应该可以运行了!

sudo chown -R ' whoami ' ~/.npm sudo chown -R ' whoami ' /usr/local/lib/node_modules

试试运行npm install -g…或者NPM uninstall -g…如果没有sudo,它应该没有错误地运行。