nvm windows踩坑攻略

一、啥是nvm?

       我们可能同时在进行2个项目,而2个不同的项目所使用的node版本又是不一样的,或者是要用更新的node版本进行试验和学习。这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,而nvm就是为解决这个问题而产生的,他可以方便的在同一台设备上进行多个node版本之间切换,而这个正是nvm的价值所在。下载地址来一个:https://github.com/coreybutler/nvm-windows/releases

二、nvm踩坑记

问题1:node版本切换功能失效,比如我装了10.15.3和6.17.1两个版本,10的版本正常能用,6的版本切不过去?

切到10版本,正常

nvm use 10.15.3

切到6版本,node失效,node指令都没了

nvm use 6.17.1

解决方案:卸载系统中原先安装的NodeJS,再统一用nvm重新安装

nvm install v10.15.3
nvm install v6.17.1

问题解决

问题2:node版本从10版本切换到6版本时,npm失效(一般发生在跨度较大的版本切换上,因为低版本node不支持高版本npm)

nvm use 10.15.3

nvm use 6.17.1

原因分析:因为nvm是管理node的,全局npm和node是不同目录的,node版本切换npm并不会切换,但是低版本node又不支持高版本的npm,所以失效

解决方案:安装低版本node的时候重新安装对应版本的npm,这样切换node版本的时候npm也会跟着切换,这里讲的不是很清楚,至于为啥重新安装npm后npm版本就能跟着node版本走我也不是很清楚,大家可以一起探索下。npm随着node重新安装的指令如下:

nvm install v6.17.1 --reinstall-packages-from=6.17.1

这样切换就正常了

问题3:node和npm重新安装后,并通过nvm切换到了6.17版本,去运行我们的咪咕新架构项目,node-sass报错了

不过人家给出了解决方案

npm rebuild node-sass

我们遵照着指令执行就可以解决了

三、nvm常用指令说明

nvm install [node version] // 安装node版本,node version'书写规范"v" + 有效node版本号,如"nvm install v6.17.1"
nvm list [availabel] // 查看当前安装的node版本列表,加上availabel后是查看当前nvm能安装的官网上所有有效node版本,可简写为"nvm ls"
nvm use [node version] // 使当前环境切换到具体的node版本,这里的node version和install时候的version书写规范不一样,不要加"v"前缀,直接node版本号,"nvm use 6.17.1"
posted @ 2020-09-25 09:44  BGweizheng  阅读(515)  评论(0编辑  收藏  举报