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

你知道我哪里做错了吗?


当前回答

Linux - ubuntu

如何解决这个问题呢

https://i.ibb.co/vQpMrpb/2022-11-19-18-14.jpg

NVM的使用并不意味着要持久—它只是在shell的生命周期内使用。

如果你想在打开新的shell时将nvm alias作为默认节点,你可以使用nvm alias default node,或者你可以创建一个.nvmrc文件,该文件将优先于当前目录中的任何位置,直到/。 https://github.com/nvm-sh/nvm/issues/658

其他回答

试试nvm alias default。例如:

$ NVM别名默认为0.12.7

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

安装最新的稳定版本:

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)

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

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

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

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

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

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

在我的例子中,另一个程序向.bashrc添加了PATH更改

如果其他程序在nvm初始化后更改了PATH,那么nvm的PATH更改将被忘记,我们将获得PATH上的系统节点(或没有节点)。

解决方案是将nvm设置移到.bashrc的底部

### BAD .bashrc ###

# NVM initialisation
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"

解决方案:

### GOOD .bashrc ###

# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"

# NVM initialisation
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

(这是在CentOS的bash 4.2.46。在我看来,这是一个错误,但我可能是错的。