爱意满满的作品展示区。
kenshin

GNVM -- 基于 Windows 的 Node.exe 多版本管理工具

  •  1
     
  •   kenshin ·
    kenshin · May 30, 2014 · 12390 views
    This topic created in 4432 days ago, the information mentioned may be changed or developed.
    由于开发的要求,需要在本地配置不同版本的node.exe,而开发环境是Win,所以无法使用nvm,而nvmw又不是特别好使,因此索性自己写了一个。

    代码已经放在github,不过没什么特别的地方,就是一个自动化的CLI工具,节省了手动下载/配置的麻烦。

    PS, 为什么用GO写,一来练练手,二来它可以生成exe,符合单文件、CLI的需求 :)

    文档(详细介绍)
    https://github.com/kenshin/gnvm

    下载地址
    在github上面有,E文的在Box,中文的在百度网盘中。

    功能(只列举了几种)
    - 全命令行操作,功能类似nvm, nvmw
    - 支持同时安装不同版本的node.exe
    - 支持升级本地node.exe到最新稳定版(Latest Version)
    - 支持自定义库,默认为: http://nodejs.org/dist/
    - 支持下载最新版本的NPM
    - 管理本机全部的node.exe

    截图
    Supplement 1  ·  May 30, 2014
    本地未安装node.js时,下载gnvm.exe后,最少两个命令:
    - gnvm install latest
    - gnvm install npm

    本地安装node.js时,多版本切换,下载gnvm.exe后,最少两个命令:
    - gnvm install 0.11.1 0.11.2 0.11.3
    - gnvm use 0.11.1
    Supplement 2  ·  Jun 1, 2014
    除了网盘下载外,新增加几种下载方式:

    - 使用go get
    go get github.com/Kenshin/gnvm

    - 使用git clone(我把binary放到了另外的repo里面)
    git clone [email protected]:Kenshin/gnvm-bin.git

    - 使用curl
    curl -O https://github.com/Kenshin/gnvm-bin/blob/master/32-bit/gnvm.exe
    curl -O https://github.com/Kenshin/gnvm-bin/blob/master/64-bit/gnvm.exe
    Supplement 3  ·  Jun 2, 2014
    如果在使用 gnvm install 下载 node.exe 较慢,可以改用国内七牛提供的镜像
    http://dist.u.qiniudn.com

    操作步骤:
    gnvm config registry dist.u.qiniudn.com

    另外,注意的是,七牛提供的镜像更新要比Node.js官网慢些 :)
    Supplement 4  ·  Jun 3, 2014
    如果没有使用多版本Node.js的场合,也可以把gnvm当作Node.js版本升级器,假设:

    - 本地Node.js版本为0.10.26
    - 官网Node.js版本为0.10.28

    把gnvm.exe放到node.exe相同目录,使用:
    gnvm update latest -g

    即可升级成功。

    Supplement 5  ·  Jun 6, 2014
    Version 0.1.1 2014-06-06 发布,是小改版,功能没有增加,只是优化了部分代码以及修复了一个非常规Bug,使用:
    gnvm version -r 查看CHANGLOG

    http://imgur.com/hEyXZnl.png
    Supplement 6  ·  Jul 15, 2014
    Version 0.1.2 2014-07-15 发布,同样为小改版,功能没有增加。
    exe为go version 1.3编译,并且修复了gnvm update latest -g在某些环境下偶尔出现无法成功更新的问题。

    gnvm version -r 查看CHANGLOG

    PS:nodejs.org的latest version更新为0.10.29,使用gnvm update latest -g升级本地node.exe为0.10.29 :)
    Supplement 7  ·  Jul 22, 2014
    前两天录了一段操作,应该会更直观些 :)

    Supplement 8  ·  Jul 23, 2014
    Version 0.1.3 2014-07-23 发布,加入:
    当node.exe被占用时使用gnvm use的处理。虽然是小改版,但建议升级!
    gnvm version -r 查看CHANGLOG
    27 replies    2014-07-19 16:23:10 +08:00
    kenshin
        1
    kenshin  
    OP
       May 30, 2014
    ("▔□▔)
    貌似应该发到 go/nodejs 节点...
    66beta
        2
    66beta  
       May 30, 2014
    俺用 nodist
    kenshin
        4
    kenshin  
    OP
       May 30, 2014
    @66beta
    嗯,nodist也不错,不过,可以试试gnvm :)

    @airyland
    看此图的左上角,coggle,不错的工具,初看域名以为是G家的 ( ̄▽ ̄")
    andyhu
        5
    andyhu  
       May 30, 2014   ❤️ 1
    @airyland 同问

    @kenshin 支持楼主,很不错的工具
    kenshin
        6
    kenshin  
    OP
       May 30, 2014
    @andyhu
    谢谢支持,思维导图是 https://coggle.it/ 其实上条回复已经写了 :)
    hester
        7
    hester  
       May 30, 2014 via Android
    @kenshin
    不错的命令行工具,功能比nvmw靠谱,比配置比nodist简单些。
    georgetso
        8
    georgetso  
       May 30, 2014
    nodejs跟ruby一样对版本要求严格?
    ruby真心坑爹货啊,用redmine和插件,每次部署N久,就是版本问题,哎
    kenshin
        9
    kenshin  
    OP
       May 30, 2014 via Android
    @georgetso
    不同版本有时会产生性能差异 :(
    不过,gnvm也可以当作node.js的安装/工具,至少节省了手动下载的步骤 :)


    @hester
    谢谢,能解决实际问题就好!
    Viztor
        10
    Viztor  
       May 30, 2014
    索性自己写了一个
    kenshin
        11
    kenshin  
    OP
       May 30, 2014 via iPad
    @Viztor
    额,什么情况?
    infinte
        12
    infinte  
       May 30, 2014
    控制台那个 lambda,cmder 吧
    kenshin
        13
    kenshin  
    OP
       May 31, 2014 via Android
    @infinte
    是的。
    kenshin
        14
    kenshin  
    OP
       May 31, 2014
    百度网盘导致屏蔽了分享!!!
    也是我手贱,为了下载速度快,把下载地址放到了百度网盘上...

    暂时可以使用Box的下载地址:
    32-bit: https://app.box.com/gnvm/1/2014967291
    64-bit: https://app.box.com/gnvm/1/2014967689

    PS,有没有可以显示下载次数,速度可以接受的网盘,推荐一个...
    hester
        15
    hester  
       May 31, 2014 via Android
    @kenshin
    可以试试google code,有下载次数。
    这个工具真心不错,希望可以坚持下去,安装/配置上比nodist方便。
    kenshin
        16
    kenshin  
    OP
       Jun 1, 2014 via Android
    @hester
    谢谢,因为自己也会用,所以肯定会更新下去。
    有需求的话,可以随便提,包括各种喷 :-D
    kenshin
        17
    kenshin  
    OP
       Jun 1, 2014
    之前有些V友反应下载的问题,所以刚刚增加了几种方式的下载:

    - 使用go get
    go get github.com/Kenshin/gnvm

    - 使用git clone(我把binary放到了另外的repo里面)
    git clone [email protected]:Kenshin/gnvm-bin.git

    - 使用curl
    curl -O https://github.com/Kenshin/gnvm-bin/blob/master/32-bit/gnvm.exe
    curl -O https://github.com/Kenshin/gnvm-bin/blob/master/64-bit/gnvm.exe

    世界终于清爽了 :)
    leohxj
        18
    leohxj  
       Jun 2, 2014   ❤️ 1
    不错,感谢!
    kenshin
        19
    kenshin  
    OP
       Jun 2, 2014
    @leohxj
    谢谢,能解决实际问题就好 :)
    chshouyu
        20
    chshouyu  
       Jun 6, 2014
    使用多个版本的node是什么情况下会呢?我怎么从来没遇到用多个版本的情况,都是用最新版
    kenshin
        21
    kenshin  
    OP
       Jun 6, 2014
    @chshouyu
    Node.js版本之间的性能有差别,因此会有这样的需求。例如:
    在某些高版本中的性能要比低版本的好些,gnvm解决了繁琐的手动切换版本的工作。

    假如暂时没有这方面的需求,也可以把gnvm当作单纯的Node.js升级器,可以看“第 4 条附言”的内容。 :)
    NemoAlex
        22
    NemoAlex  
       Jun 6, 2014
    @chshouyu 那是因为你还没有入坑
    Viztor
        23
    Viztor  
       Jun 17, 2014
    @kenshin 不是有一个段子么。
    大神用的不顺手以后,索性自己写了一个,然后原版就死了。
    kenshin
        24
    kenshin  
    OP
       Jul 8, 2014
    @Viztor
    原来如此,后知后觉了 ⊙.⊙...
    coolicer
        25
    coolicer  
       Jul 16, 2014   ❤️ 1
    感谢分享,感谢创造
    dryyun
        26
    dryyun  
       Jul 18, 2014   ❤️ 1
    不错的样子。
    kenshin
        27
    kenshin  
    OP
       Jul 19, 2014
    @coolicer @dryyun
    谢谢 :)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2880 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 104ms · UTC 09:26 · PVG 17:26 · LAX 02:26 · JFK 05:26
    ♥ Do have faith in what you're doing.