后面会把前端进阶的课程内容都总结一遍。有些都是很常见的知识,但是为了梳理自己的知识树,所以尽量模糊的地方都会记录
笔记列表在公众号右下角
当我们的包需要更新版本的时候,我们是这么修改版本号的呢?
手动去 package.json 中手动修改 版本号吗??
也行,不过就是有点傻批。
我们有自带的命令和工具去帮我们更好的完成这一件事
今天就总结两个东西
1、npm 自带命令完成版本号更新
2、standard-version 包快速更新版本号
NPM自带命令更新版本号
npm 有自带命令让你更新版本号
发布的版本类型有很多,不止主版本,次版本,修订版本 三种,还有预备主版本,预备次版本,预备修订版,预发布版
下面我们就大一统来看下命令(蓝色部分是命令修改的地方)
什么是预备版本呢?
首先,上面表格右边出现的 -0 的数字,就是 预发布号
预存一个版本,你可以 pulish 上去,但是不会发布到生产环境
觉得跟 git 的 commit 一样,推送到自己 npm 账户上去把这部分更新先保存起来
预备发布版本 和 其他预备版本有什么不同?
修改其他预备版本时,修改的地方有两个
1、递增专属的版本号位置,比如升级预备主版本,就只递增第一个数字
2、在 版本后面添加 "-0"
而 预备发布版本,则是用来递增 预发布号的,就是 最末尾横杠后的数字
比如 当前你的版本是 v1.0.0,当你升级预备主版本时
而当你继续更新预备主版本时,预发布号又会被重置
所有预备发布版本其实跟 其他 预备版本是一样的,只是 预备发布版本用来给 其他 预备版本 继续细分版本而已
当我们正式升级版本时,会把预发布号给去掉
是不是觉得上面的命令还是挺麻烦的,不怕,当然已经有人弄了一个包
standard-version 更新版本号
这个包也是帮助我们更新版本号的,但是你要说他比 npm version 方便些,也不太见得
只不过,这个包帮我做更多的事,显得项目更加正规一些更加高大上一些
github 地址:https://github.com/conventional-changelog/standard-version
这个包帮我们做了什么事情呢
1、增加了 changelog 文件
2、帮你自动修改 package.json 和 changelog 并提交 ,然后给 提交的 commit 打上标签
下面先来回答两个个问题
1、什么是 changelog 文件
根据字面意思来看,就是改动日志,没错,就是你项目的改动日志,用于记录你的什么时候进行版本更新,以及更新了什么内容
目前当然是要你手动去记录你改动什么啊,不过后面会有一个包帮你自动做这个事情
2、什么是自动修改 package.json 和 changelog,并提交打标签
不用想,修改 package.json 肯定是帮你更新版本号 version那么 changelog 会修改什么呢?
会增加此次更新的版本号以及时间,比如你此次升级成 v3.4.6,那么就会在 changelog 中增加这一行信息
相应的,你要在 这一行下面加上你更新的内容
然后!
帮你自动修改完这两个文件之后,就会自动提交 git commit ,并会给这条记录打上版本的标签
没看错!只会提交这两个文件!
但是提交我懂,打标签反正我没懂得,虽然很常用
打标签就是,给某条提交记录做个简单的标记,他的作用 和 commit 的 commit-id 是差不多的,只不过 commit 的那个id 太长,不好记,或者说,打标签就是找个简短好记的替代 commit-id (你看下面这串这么长,贼讨厌)
所以为了方便,就给这条记录打上一个简单的标签,方便我们回退到这个版本
简单提一下怎么打标签
相关知识要熟悉一下
git tag -a v3.1 f1bb97a
v3.1 就是你要打的标签,后面那串就是 commit-id,从 git 提交记录去找你要打标签的那条提交记录
开始使用standard-version!
上面两个问题我们已经了解喽,下面就来说说怎么使用这个包!!
第一步肯定是要安装的!
npm i standard-version -D
下面我们就来说一下使用命令!
首先,我们去 package.json 中添加一个脚本命令
当然了,我们使用这个包升级版本号也像前面一样,可以升级各种版本号
主版本,次版本,补丁版本等等 都是可以的!
ok,下面开始我们的版本升级 show
更新补丁版本(版本号最后那一位)
npm run release
看下面的运行情况,可以看到做了三件事,我们上面有提到的
更新次版本(版本号中间那位)
npm run release -- --release-as minor
记住,上面的那两杠是必须的
而更新主版本也是一样的,把 minor 改成 major 就行了
直接指定版本号也是可以的
npm run release -- --release-as 5.1.0
下面说下更新预备版(版本号后加一杠)
npm run release -- --prerelease
更新内部测试版(不对外发布,有很多bug,只有测试人员用那种)
npm run release -- --prerelease alpha
发布并推送
我们现在已经更新版本好了,下一步就是发布 npm 并且 提交代码到 github 上了一行命令搞定
git push --follow-tags origin master && npm publish
但是这样太长了
通常,我添加到 package.json 的脚本命令中
然后发布时,一条命令就行了
npm run push
有没有对其中的指令有些疑惑,没错!我也疑惑,本着研究到底的精神,我 go 了
疑惑什么呢?就是
--follow-tags 是什么鬼?
简要来说,这句话是把你本地打的标签,推送到 github 上
因为如果直接 git push,是不会把本地标签推送上去的
而 推送本地标签又可以分为两种
1、推送本地全部标签
2、推送本地带有注释的标签
先看下github 上我们推上去的标签是怎么样的(以下是在 码云看的)
通常 github 上的标签就是版本号,所以然后我们下载的时候,完全可以选择版本进行下载
下面说推送标签的命令把
推送本地全部标签,是下面的命令
git push --tags
推送本地带有注释的标签,没错,就要加上 那个疑惑的东西了
git push --follow-tags
什么是带有注释的标签啊?
通常,标签分为两种
1、轻量级标签
2、带注释的标签
轻量级标签就是轻量,不会附加其他信息,就带一个 标签名,通常这么去创建
git tag v2.0.0
带注释的标签,显然就会附加上更多的信息,其中就有注释,通常这么创建
git tag -a v1.1.0 -m 'this is my first version'
standard-version 给我们创建的版本标签就是 带注释的标签
所以我们就需要把这些标签推送上去,来分离出版本节点,而一般我们自己本地创建的标签都是轻量级的,为了方便自己用的,所以没必要推送到远程仓库,那么就在这里加了个筛选
如果 git push --tags 的话,就会把轻量级以及注释标签都会推送上去了
总结
其实一般小公司的项目可能都用不到版本号的管理(笑哭)我们以前更新项目根本不知道这个东西,但是现在在大公司,版本号是严格控制的
所以肯定是要会的,而且要保证忘了也能捡起来
希望大家也能掌握,就算现在不掌握,也最好保存收藏一下,因为迟早的事哈哈哈
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有