安利一个 14 年撸的轮子(已更新) - 用 Go 语言 写的 Node.js 多版本管理器

gnvm,是一个 windows 下 简单的 Node.js 多版本管理器,类似 nvmw | nodist 等。
原本是 14 年 为了学习 Go 语言 而建立的一个项目,后来一直没有维护,结果前阵子,陆陆续续的收到了 很多 issues ,既然有人用,本着不想挖坑不填的想法,又继续更新了。

先给个运行效果:

c:\> gnvm install latest 1.0.0-x86 1.0.0-x64 5.0.0
Start download Node.js versions [5.10.1, 1.0.0, 1.0.0-x86, 5.0.0].
5.10.1: 18% [=========>__________________________________________] 4s
 1.0.0: 80% [==========================================>_________] 40s
1.0...: 50% [==========================>_________________________] 30s
 5.0.1: 100% [==================================================>] 20s
End download.

c:\> gnvm ls
5.1.1 -- latest
1.0.0
1.0.0 -- x86
5.0.0 -- global

c:\> gnvm use latest
Set success, current Node.js version is 5.10.0.

c:\> gnvm update latest
Update success, current Node.js latest version is 5.10.0.

既然是个 轮子,总要有个 轮子 的样,相对与它的 前 /后 辈来说,具有如下的特点:

  • 单文件,不依赖于任何环境。
  • 下载即用,无需配置。
  • 彩色日志输出。
  • 支持多任务下载。
  • 内置 TAOBAO,方便切换,也支持自定义。
  • 支持 NPM 下载 /安装 /配置。
  • 可以设定某个 本地已存在的 node.exe 为临时环境。( 性能对比时很有用 )

下载

  • 32-bit | 64-bit 常用地址, Box ,速度稍慢
  • 32-bit | 64-bit 备用地址,百度网盘,速度快
  • 32-bit | 64-bit 备用地址, Github
  • 已经安装了 go 的用户,使用
    go get github.com/Kenshin/gnvm
  • 已经安装了 git 的用户,使用
    git clone [email protected]:Kenshin/gnvm-bin.git
  • 已经安装了 curl 的用户,使用
    curl -L https://github.com/Kenshin/gnvm-bin/blob/master/32-bit/gnvm.exe?raw=true -o gnvm.exe
    curl -L https://github.com/Kenshin/gnvm-bin/blob/master/64-bit/gnvm.exe?raw=true -o gnvm.exe

安装

  • 不存在 Node.js 环境

    下载并解压缩 gnvm.exe 保存到任意文件夹,并将此文件夹加入到环境变量 Path

  • 存在 Node.js 环境

    下载并解压缩 gnvm.exe 保存到 Node.js 所在的文件夹。

验证

  • cmd 下,输入 gnvm version,输出 版本说明 则配置成功。

截至到 0.2.0 版本所具有的功能:

config       配置 .gnvmrc
use          使用某个本地已存在的 Node.js 版本
ls           输出 [local] [remote] Node.js 版本
install      下载 /安装任意已知版本的 Node.js
uninstall    删除任意本地已存在的 Node.js
update       下载 Node.js latest 版本并更新到 .gnvmrc 里面
npm          NPM 下载 /安装 /删除 管理
session      临时设定本地某个已存在的 Node.js 为 全局 Node.js
search       查询并且输出符合查询条件的 Node.js 版本详细信息的列表
node-version 输出 [global] [latest] Node.js 版本
reg          设定 .gnvmrc 属性值 [noderoot] 为 环境变量 [NODE_HOME],并加入到 Path 中
version      查看 gnvm 版本

顺便撸了个官网:

由于功能比较多,所以用 gitbook 构建了一个 API 文档 ,地址:

上个全功能图谱:

写在最后的话:

官网 以及 API 文档 比较详细的了,绝大多数使用问题都可以找到解答方案。

不知道从什么时候开始,评判一个 项目的好坏标准变成了 Github 上的 Start 数 ,虽然有道理,但也挺无奈的。如果 gnvm 真的好用,不需要请我喝杯咖啡,希望你能在 https://github.com/kenshin/gnvm 给个星,不为别的,只为让更多人了解到 gnvm

希望 gnvm 能解决你在开发上的 痛点

好高级

额,就是个 Node.js 切换器。 :smiley: