V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kenshin
V2EX  ›  Node.js

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

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

    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   ·   实用小工具   ·   2719 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:38 · PVG 14:38 · LAX 22:38 · JFK 01:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.