前言

在正常开发中,我们常常会遇到 node 升级到了最新版之后,老项目中有时会因为 node 版本的问题而造成项目无法运行,本篇是专门针对 Windows 环境下出现该问题的解决方法

具体解决方法

参考链接:https://segmentfault.com/a/1190000010374684

  1. 先将 github 上的 nvmw 项目文件夹使用 git 命令克隆到本地,我这里是克隆到了 D:\ 路径下,前提是你得会使用 git
    打开电脑的 D 盘文件夹 -> 鼠标右键 -> 选择 Git Bash Here 选项,在打开的命令行窗口中输入下面的命令 ``` git clone https://github.com/hakobera/nvmw.git
  1. > ![image.png](http://upload-images.jianshu.io/upload_images/9064013-7a610e0de98dcf19.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  2. - 克隆成功之后 `exit` 退出即可
  3. 2. 查看你的 D:\ 下是否已经有了 nvmw 文件夹
  4. > ![image.png](http://upload-images.jianshu.io/upload_images/9064013-6609ebc9312c879e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  5. 3. 之后在本机的 Path 变量中添加 nvmw 目录路径,添加之后点击确定即可<br />
  6. ;D:/nvmw
  7. > ![image.png](http://upload-images.jianshu.io/upload_images/9064013-42bc2af00555630a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  8. 4. 打开命令行终端,输入命令 `nvmw` 查看是否配置成功,**注意这里输入命令的时候,必须得重启你的命令行终端,否则是不会生效的**,下图显示的就是配置成功的输出了

nvmw

  1. > ![image.png](http://upload-images.jianshu.io/upload_images/9064013-89260e2218ff4ab6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  2. 5. 虽然是安装成功了,但是因为是国内,所有还需要修改 D:/nvmw 文件夹中的几个文件之后才能真正的使用
  3. > ![image.png](http://upload-images.jianshu.io/upload_images/9064013-c5d865facf664175.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  4. 6. 修改源代码(下面的图片都是修改之后的)
  5. - fget.js 文件47行,XMLHTTP 改为ServerXMLHTTP
  6. > ![image.png](http://upload-images.jianshu.io/upload_images/9064013-65b463683cd69eba.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  7. - nvmw.bat 文件22~28行用下面的代码替换

if not defined NVMW_NODEJS_ORG_MIRROR ( set “NVMW_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node“ )

if not defined NVMW_IOJS_ORG_MIRROR ( set “NVMW_IOJS_ORG_MIRROR=http://npm.taobao.org/mirrors/iojs“ )

  1. > ![image.png](http://upload-images.jianshu.io/upload_images/9064013-b3b9b73bb0992338.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  2. - nvmw.bat 文件137 : x64改为win-x64
  3. > ![image.png](http://upload-images.jianshu.io/upload_images/9064013-1e5791b38c2f1602.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  4. - get_npm.js 文件第8行用下面的代码替换

var NVMW_NPM_MIRROR = process.env.NVMW_NPM_MIRROR || ‘http://npm.taobao.org/mirrors/npm‘;

  1. > ![image.png](http://upload-images.jianshu.io/upload_images/9064013-f6fc72e45a31d335.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  2. - get_npm.js 文件第44~51行用下面的代码替换

var pkgUri = “https://npm.taobao.org/mirrors/node/index.json“; wget(pkgUri, function (filename, pkg) { if (filename === null) { return noNpmAndExit(); } var _pkg = JSON.parse(pkg); for(var i = 0,n=_pkg.length;i<n;i++){ var obj = _pkg[i]; if(obj.version == binVersion){ downloadNpmZip(obj.npm); } } })

  1. > ![image.png](http://upload-images.jianshu.io/upload_images/9064013-b071fb31dc5d24dc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  2. 6. 上面的文件修改成功之后重启你的命令行终端,在命令行中可以依次输入下面的命令

//查看是否可以运行 nvmw nvmw //查看已安装的包 这里如果是第一次查看是什么都没有的主要是为了与安装后的作比较 nvmw ls //安装任意版本的 node 安装时间会有一点的久,注意:安装之后默认的使用的就是你安装的这个版本了 nvmw install v4.8.6 //安装之后再次查看已安装的包 这时会发现有了 4.8.6 的包 nvmw ls //查看 node 版本,会发现已经是 v4.8.6 了 证明成功了 node -v

  1. 7. nvmw 的一些基础的命令

//安装某个版本 nvmw install v0.10.20 //卸载某个版本 nvmw uninstall v0.10.20 //使用某个版本,前提是你使用的这个版本已安装 nvmw use v0.10.20 //查看所有的你已安装的版本包 nvmw ls

```

  1. 建议:如需安装最新版本可前往 官网 自行查看最新的版本号执行安装命令即可,左边的是比较稳定的版本

image.png