V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
larryzhu9952
V2EX  ›  分享创造

vnr: 一个可以面向业务的版本管理小工具

  •  
  •   larryzhu9952 · 2 天前 · 665 次点击

    vnr - Version Number Reviser

    本来没想发的,因为这个工具很简单,各位手撸半小时就能写完,但是因为我抢到了这个很短的包名:vnr ,意为版本号修订器。

    它用起来也很简单,你只需要在 package.json 中新增如下字段(以 docker 为例)

    "vnr": {
        "docker:build": "docker build -t weapp_images -t registry.xxxx.com/xxx/xxx:v$ ."
    }
    

    当你执行 npm run vnr 时,vnr 将为你生成一个基于升级后的版本号的命令。

    比如你当前 package.json 的 version 字段是 1.0.0 。你在 vnr 中选择了修订更新,那么你的 version 字段将更新为 1.0.1 。而你的 package.json 中将会新增如下命令

    "script":{
    	"docker:build": "docker build -t weapp_images -t registry.xxxx.com/xxx/xxx:v1.0.1 ."
    }
    

    vnr 在$处为你更新了版本号。vnr 后续的步骤中还可以直接选择运行刚刚生成的命令。

    和其他的版本工具一样,使用后你无需关心当前版本,只需执行 npm run vnr 选择更新类型即可。

    欢迎体验、锐评

    pnpm i vnr
    
    2 条回复    2024-12-04 13:08:36 +08:00
    ShineyWang
        1
    ShineyWang  
       1 天前
    版本管理如果用的 git
    可以用[semantics version]( https://github.com/semantic-release/semantic-release)

    有很多开源工具支持,根据 git tag 生成版本号
    让版本与代码无缝结合,感觉比你这个合理得多
    larryzhu9952
        2
    larryzhu9952  
    OP
       14 小时 43 分钟前
    @ShineyWang 你说的没错,有很多成熟的版本号的库,这个 vnr 可以说是只把最基础的功能做出来了,如果做到全流程托管,还需要配合 git hook 或者其他 ci 库。相比之下不和 git 等耦合反而增加它的灵活性,比如你也可以搭配 pre-commit 来支持所谓的 `根据 git tag 生成版本号`
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1030 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 19:52 · PVG 03:52 · LAX 11:52 · JFK 14:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.