Windows下利用nvmw安装管理多版本node.js

https://segmentfault.com/a/1190000010374684


有时由于项目依赖版本不同,需要不同的node版本;mac和linux可以通过nvm来安装管理多版本node.js,实现版本的轻松切换;Windows下 可以通过nvmw来实现.

nvmw is a simple Node Version Manager for Windows.

作者github : https://github.com/hakobera/nvmw

需要安装git
1 利用作者的方法 在cmd下运行 :
Git clone git://github.com/hakobera/nvmw.git "%HOMEDRIVE%%HOMEPATH%.nvmw"
2 会生成一个文件夹 如图(注意路径)
图片描述

此时生成.nvmw文件,打开将 
C:UsersAdministrator.nvmw(根据每个人的路径填写)手动添加到环境变量

3 cmd 中输入nvmw可提醒相关指令,说明安装成功了,但是还不能使用,需要手动配置几个.nvmw下的文件

4 修改源代码

fget.js文件47行,XMLHTTP 改为ServerXMLHTTP

nvmw.bat文件137行 : x64改为win-x64 
22行:

扫描二维码关注公众号,回复: 1518411 查看本文章
if not defined NVMW_NODEJS_ORG_MIRROR (
 set "NVMW_NODEJS_ORG_MIRROR=https://nodejs.org/dist"
)

if not defined NVMW_IOJS_ORG_MIRROR (
 set "NVMW_IOJS_ORG_MIRROR=https://iojs.org/dist"
)
-------------------------------改为-------------------------------------------
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"
)

get_npm.js文件 第8行

var NVMW_NPM_MIRROR = process.env.NVMW_NPM_MIRROR || 'https://github.com/npm/npm/archive';
----------------------------------改为--------------------------------------
var NVMW_NPM_MIRROR = process.env.NVMW_NPM_MIRROR || 'http://npm.taobao.org/mirrors/npm';

第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);
        }
    }
  })

O K 了 !

之后就可以使用 nvmw install v 来安装不同版本的node了 比如nvmw install 8.1.3

nvmw use v 来切换使用不同版本的node

nvmw ls 可以显示已安装的所有node版本

还有类似的插件 叫做 nvm-windows 可以去github上搜一下 ; 但是他有个弊端 作者提到:"要卸载任何现有版本的node.js。还应该删除可能保留的任何现有nodejs安装目录,您还应该删除现有的npm安装位置" ; nvmw不需要 所以我选择了nvmw


猜你喜欢

转载自blog.csdn.net/qq_34306360/article/details/80400211