nvm的一些使用问题

最近在自己的devbox上按照教程安装好nvm后,执行nvm use 10.15.0命令时常会遇到如下错误,

vm is not compatible with the npm config "prefix" option: currently set to "/data00/home/xxx/.nvm/versions/node/v10.15.0"
Run `npm config delete prefix` or `nvm use --delete-prefix v10.15.0 --silent` to unset it.

然后按照提示执行了下nvm use --delete-prefix v10.15.0 --silent,发现好了,但是下次再登录的时候发现node不见了,执行node报 command not found的错误。左思右想,难道这个devbox和平时接触到的server不一样,最后回归溯源,看nvm是怎么启动的,你会发现在.bashrc中有几句如下代码,其中nvm.sh就是负责启动和设置node的。

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.sh,发现有权限问题,于是我把权限改成777,后面再登录就好了

xxx@n8-121-132:~$ chmod 777 .nvm
iudecai@n8-121-132:~$ ./.nvm/nvm.sh
nvm is not compatible with the npm config "prefix" option: currently set to "/data00/home/xxx/.nvm/versions/node/v10.15.0"
Run `nvm use --delete-prefix v10.15.0 --silent` to unset it.
xxx@n8-121-132:~$ nvm use --delete-prefix v10.15.0 --silent
xxx@n8-121-132:~$ ./.nvm/nvm.sh
nvm is not compatible with the npm config "prefix" option: currently set to "/data00/home/xxx/.nvm/versions/node/v10.15.0"
Run `nvm use --delete-prefix v10.15.0 --silent` to unset it.
xxx@n8-121-132:~$ npm -v
6.4.1
xxx@n8-121-132:~$ npm config delete prefix
xxx@n8-121-132:~$ npm config set prefix /home/xxx/.nvm/versions/node/v10.15.0/
xxx@n8-121-132:~$ ./.nvm/nvm.sh
xxx@n8-121-132:~$ node -v
v10.15.0
xxx@n8-121-132:~$ npm -v
6.4.1
xxx@n8-121-132:~$ cd ..
xxx@n8-121-132:home$ exit
logout
Connection to 10.8.121.132 closed.

上面的流程中我们可以看到其实还需要先执行:

xxx@n8-121-132:~$ npm config delete prefix
xxx@n8-121-132:~$ npm config set prefix /home/xxx/.nvm/versions/node/v10.15.0/

总之当你发现通过设置prefix还不能解决的时候,尝试着把.nvm目录的权限放宽些,也许可以解决。

你可能感兴趣的:(nvm的一些使用问题)