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

2 天前
 larryzhu9952

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
663 次点击
所在节点    分享创造
2 条回复
ShineyWang
1 天前
版本管理如果用的 git
可以用[semantics version]( https://github.com/semantic-release/semantic-release)

有很多开源工具支持,根据 git tag 生成版本号
让版本与代码无缝结合,感觉比你这个合理得多
larryzhu9952
14 小时 21 分钟前
@ShineyWang 你说的没错,有很多成熟的版本号的库,这个 vnr 可以说是只把最基础的功能做出来了,如果做到全流程托管,还需要配合 git hook 或者其他 ci 库。相比之下不和 git 等耦合反而增加它的灵活性,比如你也可以搭配 pre-commit 来支持所谓的 `根据 git tag 生成版本号`

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

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

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

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

© 2021 V2EX