安利一个 14 年撸的轮子(已更新) - 用 Go 语言 写的 Node.js 多版本管理器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kenshin
V2EX    Node.js

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

  •  3
     
  •   kenshin 2016-04-28 09:06:21 +08:00 5423 次点击
    这是一个创建于 3483 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 为临时环境。( 性能对比时很有用 )

    下载

    安装

    • 不存在 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 能解决你在开发上的 痛点

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

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

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

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

    param:
    - xxx : yyy

    return:
    - xxx : yyy
    kenshin
        11
    kenshin  
    OP
       2016-04-28 14:18:39 +08:00
    @holmesabc
    人肉,写 func 的时候,顺便加上了,当然格式是通过 TextExpander 自动加上的。
    zwh8800
        12
    zwh8800  
       2016-04-28 15:03:18 +08:00   1
    看起来不错, go get 啦
    kenshin
        13
    kenshin  
    OP
       2016-04-28 15:11:37 +08:00
    @zwh8800
    感谢使用~ :)
    cnly1987
        14
    cnly1987  
       2016-04-29 08:55:44 +08:00 via iPhone   1
    @kenshin 原来是你写的,老用户路过
    cnly1987
        15
    cnly1987  
       2016-04-29 08:55:44 +08:00 via iPhone
    @kenshin 原来是你写的,老用户路过
    kenshin
        16
    kenshin  
    OP
       2016-04-29 09:09:34 +08:00 via Android
    @cnly1987
    活捉老用户一名,感谢已发! (^^
    novay55555
        17
    novay55555  
       2016-04-29 10:18:03 +08:00   1
    好东西, 果断入教-. -
    kenshin
        18
    kenshin  
    OP
       2016-04-29 13:11:54 +08:00 via Android
    @novay55555
    欢迎入教 (^^
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5808 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 03:01 PVG 11:01 LAX 19:01 JFK 22:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86