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

你知道我哪里做错了吗?


当前回答

在我这端,我必须更改别名STABLE和DEFAULT

nvm alias stable {node_version}

nvm alias default {node_version}

其他回答

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

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

使用自制程序卸载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

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

这些解决方案在我的环境中都不起作用,nvm似乎总是加载node的第一个安装版本(除非你通过nvm使用临时更改它)。

我发现改变默认值的唯一方法是:

Clear nvm cache:清除nvm缓存 将默认设置为所需的版本:nvm alias默认12(或任何版本) 切换到需要的版本:nvm use 12 卸载所有其他版本: NVM ls(列出安装) NVM uninstall x(为每个非默认安装运行) 重新安装其他版本:nvm install x

您可以使用这个脚本来自动化这个过程(只需将第一个变量更改为所需的版本)-它将自动重新安装之前的所有版本。

DEFAULT_NVM_VERSION=16
nvm cache clear
nvm install $DEFAULT_NVM_VERSION
nvm alias default $DEFAULT_NVM_VERSION
NVERS=$(nvm ls --no-alias | grep -v -- "->" | grep -o "v[0-9.]*")
while read ver; do nvm uninstall $ver; done <<< $NVERS
while read ver; do nvm install $ver; done <<< $NVERS
nvm use $DEFAULT_NVM_VERSION

或者作为一行语句:

DEFAULT_NVM_VERSION=16 && nvm cache clear && nvm install $DEFAULT_NVM_VERSION && nvm alias default $DEFAULT_NVM_VERSION && NVERS=$(nvm ls --no-alias | grep -v -- "->" | grep -o "v[0-9.]*") && while read ver; do nvm uninstall $ver; done <<< $NVERS && while read ver; do nvm install $ver; done <<< $NVERS && nvm use $DEFAULT_NVM_VERSION

新终端现在应该尊重默认版本。

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

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

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

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