利用nvm管理node版本(windows)

node更新太快了,我在工作上正式用到node的时候,这货还是0.11.0-,现在一看,都7.x了。但是又不能随时升级版本,尤其是当我们用着一些工具如fis,项目用到csssprites时,升级个node分分钟给你warning,可是现在新兴的工具,比如wept微信小程序模拟器,低版本node,不支持。

于是我就搜索是否有node版本管理工具,果然是有的,如nvm

用法很简单:

nvm list

输出本地已有的node版本

nvm use version

切换当前node版本

还有nvm install version 安装node版本

但是呢,不巧的是nvm不支持windows系统,那我白找了? 好在还有个window版本的nvm-windows

安装

直接下载安装包安装即可,并会提示选择node版本的安装路径

版本切换的大致原理

查看了一下环境变量的变化,原来的node路径被清除了,取而代之的是%NVM_SYMLINK%,这是一个新建的用户变量,举个例子,我在D盘下建了nv目录,NVM_SYMLINK变量则设置了为 D:\nv\nodejs,实际上nodejs这个是一个快捷方式,其指向的是一个在用版本的路径。

什么是在用版本的路径呢? 新增的环境变量 %NVM_HOME%,其指向的是NVM程序的目录,当使用nvm install时,会将下载的node安装到该目录,每一个版本就对应一个目录,而nvm use切换到的版本目录目录,其实就是在用版本的路径了。

所以当用nvm做版本切换时,大概就是改变那个nodejs快捷方式的指向了,基本不需要变动到环境变量,而系统又能通过这个快捷方式找到对应的node程序。

不过需要注意的是,当你新增一个版本时,其对应的npm的全局安装路径,也是其版本目录,如果在安装nvm时,就已经有node的情况下,可能需要做一些环境变量与已安装模块的位置调整。

  1. 删除环境变量里node的原模块安装路径,不然可能会有程序寻址优先级问题。
  2. 调整原node的模块全局安装路径npm config set prefix "路径"
  3. 原先已安装的模块复制 或者 重装到新的路径下(后者我觉得比较靠谱)

在这次nvm-windows使用中,我还收获了Environment Variables这个环境变量管理工具,比原生工具实用多了。

安装完毕,于是我就开始装了7.1.0以及6.0.0,然而 fis还是warning. 还是乖乖用老版本node吧 (捂脸)