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

2016-04-28 09:06:21 +08:00
 kenshin

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.

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

下载

安装

验证

截至到 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 能解决你在开发上的 痛点

4928 次点击
所在节点    Node.js
17 条回复
just4fan
2016-04-28 10:16:06 +08:00
一四年 十四年
julyclyde
2016-04-28 10:30:16 +08:00
图不错,用啥软件画的?
onvno
2016-04-28 10:38:36 +08:00
赞,前段时间在 github 上反馈过,没想到更新了,先 mark 一记。
ayaseangle
2016-04-28 10:41:49 +08:00
ci server 上用得比较多吧
lcxseima
2016-04-28 10:52:30 +08:00
@julyclyde 左上角, coggle
kenshin
2016-04-28 11:20:26 +08:00
@just4fan
额,第一条回复就是个挑错哦 ~

@julyclyde
5 楼 正解! 很靠谱的服务,我从 2014 年 开始使用的,到现在还没有挂。 (/≧▽≦)/

@onvno
哦,老用户啊,就是因为你们的反馈,所以我才更新的,也感谢你们的使用和反馈。
新版本绝对如 『丝般滑顺的』 ~

@ayaseangle
不一定, gnvm 定位比较多样,你可以单纯的把它 当做 latest 版本升级器。 gnvm update latest -g 即可升级到最新版本。
hester
2016-04-28 11:52:51 +08:00
感谢分享,之前用过一段时间,有段时间不好使了,没想到又更新了。
官网和文档的界面很漂亮啊,是用什么实现的?
ayaseangle
2016-04-28 13:14:13 +08:00
@kenshin 开发的话一般选一个 LTS 版本吧,需要支持的版本列表扔到 ci 去,过了就过了,没过看一下差异做下兼容处理,大概就这样子。
kenshin
2016-04-28 13:54:54 +08:00
@hester
感谢使用~
官网是自己撸的,纯静态页面,放到了 github 上面。
文档是 gitbook ,为了搭配官网,修改了 theme 。
holmesabc
2016-04-28 14:07:15 +08:00
好奇, 像注释 这种格式是人肉加上去的?

param:
- xxx : yyy

return:
- xxx : yyy
kenshin
2016-04-28 14:18:39 +08:00
@holmesabc
人肉,写 func 的时候,顺便加上了,当然格式是通过 TextExpander 自动加上的。
zwh8800
2016-04-28 15:03:18 +08:00
看起来不错, go get 啦
kenshin
2016-04-28 15:11:37 +08:00
@zwh8800
感谢使用~ :)
cnly1987
2016-04-29 08:55:44 +08:00
@kenshin 原来是你写的,老用户路过
cnly1987
2016-04-29 08:55:44 +08:00
@kenshin 原来是你写的,老用户路过
kenshin
2016-04-29 09:09:34 +08:00
@cnly1987
活捉老用户一名,感谢已发! (^^♪
novay55555
2016-04-29 10:18:03 +08:00
好东西, 果断入教-. -
kenshin
2016-04-29 13:11:54 +08:00
@novay55555
欢迎入教 (^^♪

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/274976

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX