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

你知道我哪里做错了吗?


当前回答

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

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

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

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

其他回答

如果你也有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

试试nvm alias default。例如:

$ NVM别名默认为0.12.7

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

1.-通过自制软件安装

2.-因为我使用的是zsh终端,在~/。ZSHRC添加这些行,如果你使用bash,你需要把这些行放在~/.bash_profile中

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

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

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

在VS Code编辑器中使用集成终端时,我也面临着同样的问题。在使用nvm更改节点版本后重新启动VS Code,为我解决了这个问题。