自动升级版本

公孙修
• 阅读 1195

版本号大家都很熟悉,每次项目上线都需要升级版本,但是你知道如何自动升级吗?让我们一起来看一下吧

什么是版本号?

答: 大家打游戏的时候都有遇到过升级程序,给一个游戏升级,那这个升级就会生成新的版本号,比如:0.0.1升级之后就变成了0.0.2,这就是版本号.

如何生成一个版本号?

答: 在package.json中有一个"version"属性,它就代表着版本号,
    每次修改了代码,上线就需要更改他,但是一般我们不需要更改,
    公司的git版本管理工具会生成你的版本号,但是我们做自己的项目怎么办?
    每次都要改这个么?不,可以自动生成.快来看看吧

几个升级版本的代码,以及表达的意思

答: 
1. npm version major | minor | patch
2. 我们知道版本是由A.B.C的样子生成的,每一个都有相应的代码控制
   A对应着major,B对应着minor,C对应着patch,当然也有特殊情况
   比如你会滚了代码,这里先不考虑....,这里面的代码会对应升级相应的版本号

ok我们来配置,我们了解到这里,让我们的项目每次自动生成版本号

首先在你的项目中创建一个`deploy.sh`文件,和package.json同级
然后在文件里面加入如下代码:
    npm version patch
    git push
接下来,提交代码,运行如下代码
    "git add ."
    "git commit ."
    "add deploy"
    ":wq"
    "sh ./deploy.sh"(千万不能多个空格)

那不对啊,这每次都只能升级小版本啊,我要升级中间的怎么办?

我们来改变一下配置,改成`npm version $1`,这个$1,就是给他传一个参数
怎么传?这也能传?YES
我们再来执行一下,先提交我们代码,然后执行下面的代码
    "sh ./deploy.sh minor"
我们提升了中间的版本,并且push了

自动升级版本

嘿嘿嘿,这里有个小小的问题,首先当我们更改代码的时候,直接运行"sh ./deploy.sh minor"会报错,但是他还是会,push
自动升级版本

我们来解决这样的问题

将代改写成如下代码:
    `npm version $1 && git push`
这段代码的意思很明显了吧,就是说前面错误,后面也不会执行

总结:

  1. 这是我们配置的最简单的一个自动升级版本号的方式
  2. 一个前端工程师最后总是会自己去写一个自动升级版本号的配置的
点赞
收藏
评论区
推荐文章
冴羽 冴羽
2年前
聊聊 npm 的语义化版本(Semver)
前言现在我们要开发一个项目,我们都知道为了方便项目管理,要写一个版本号,那开发的时候初始的版本号是多少呢?是1.0.0还是0.0.1开始?如果一个版本号为X.Y.Z,什么时候是X应该加1,什么时候Y应该加1,什么时候Z应该加1,加1遵循十进制吗?比如1.0.9的下一个版本应该是1.1.0吗?我们经常看到一些项目的版
Easter79 Easter79
3年前
springmvc3.2集成redis集群
老项目需要集成redis集群因为spring版本才从2.x升级上来,再升级可能改动较大,且并非maven项目升级麻烦,故直接集成。jar包准备:jedis2.9.0.jar 据说只有这个版本支持密码...commonspool22.0.jarspringdataredis1.8.1.RELEASE.jarspri
Easter79 Easter79
3年前
springCloud Finchley升级记录
最近开发新项目顺便升级SpringcloudDalston.SR5到当前最新版Finchley.SR1由于springboot1.5.10到当前最新版spring2.0.1版本升级修改比较大,记录一下首先修改一下springbootcloud版本号其他不用变部分配置文件名称修改了添加一下以下依赖会提示如何迁移<
Wesley13 Wesley13
3年前
PHP连接MySQL 8.0报错的解决办法
MySQL升级到8.0之后,PHP连接报错怎么解决?作为资深的MySQL票友,最近我总在给8.0吹水,我们知数堂的MySQL课程去年也早就升级到8.0版本了。我的VPS老早就想升级了,无奈PHP版本太低,担心升级后有问题,所以一直没去折腾。这两天稍微得空,就开始折腾升级MySQL版本。为了解锁最香新功能,我直接升级到了最新的MySQL8.0.1
Stella981 Stella981
3年前
Python升级Linux
CentOS7中默认安装了 Python,版本比较低(2.7.5),为了使用新版3.x,需要对旧版本进行升级。由于很多基本的命令、软件包都依赖旧版本,比如:yum。所以,在更新 python 时,建议不要删除旧版本(新旧版本可以共存)。查看Python版本号当 Linux 上安装Python后(默认安装)
Stella981 Stella981
3年前
Android Studio3.1.0升级问题记录
每次升级AndroidStudio时,一般情况下Gradle版本的也会相应的升级,我之前AndroidStudio3.0.1、Gradle是4.1升级后为:AndroidStudio3.1.0、Gradle为4.4。升级完成后先是报一堆错(每次都升级都是。)第一个错如下:TheSourceSet'in
Stella981 Stella981
3年前
Druid时序数据库升级流程
目前Druid集群版本为0.11.0,新版本0.12.1已支持DruidSQL和Redis,考虑到Druid新特性以及性能的提升,因此需要将Druid从0.11.0版本升级到0.12.1版本,下面将对Druid升级步骤做详细的介绍,升级时请严格按照此步骤进行升级,以免出现一些不可预知的问题。1\.Druid升级包Dru
Stella981 Stella981
3年前
Nginx安全优化
一、隐藏版本号http{server_tokensoff;}经常会有针对某个版本的nginx安全漏洞出现,隐藏nginx版本号就成了主要的安全优化手段之一,当然最重要的是及时升级修复漏洞。二、开启HTTPSserver{listen443
Stella981 Stella981
3年前
SpringBoot整合升级Spring Security 报错 【The request was rejected because the URL was not normalized】
前言最近LZ给项目框架升级,从Spring1.x升级到Spring2.x,在这里就不多赘述两个版本之间的区别以及升级的原因。关于升级过程中踩的坑,在其他博文中会做比较详细的记录,以便给读者参考,不要掉进同样的坑里。这里我们讨论一个关于URL中包含双斜杠被拦截的问题。发现问题升级框架之后,测试一个功能时,发现报错Htt
Easter79 Easter79
3年前
SpringBoot整合升级Spring Security 报错 【The request was rejected because the URL was not normalized】
前言最近LZ给项目框架升级,从Spring1.x升级到Spring2.x,在这里就不多赘述两个版本之间的区别以及升级的原因。关于升级过程中踩的坑,在其他博文中会做比较详细的记录,以便给读者参考,不要掉进同样的坑里。这里我们讨论一个关于URL中包含双斜杠被拦截的问题。发现问题升级框架之后,测试一个功能时,发现报错Htt
Stella981 Stella981
3年前
Dubbo多版本
  当服务提供者提供的服务接口出现不兼容升级时,可以设置版本号,使用多个版本号(version)进行过渡。  1)、服务提供者配置文件1<dubbo:serviceref"userService"interface"cn.coreqi.service.UserService"version"1.0.0"/2