语义化版本规则

作者: 原来哥哥是万家灯火 | 来源:发表于2018-12-13 16:03 被阅读0次
    // package.josn
    
    {
      "name": "jss-admin",
      "version": "1.0.0",
      "license": "MIT",
      "scripts": {
        "ng": "ng",
        "start": "ng serve --env=test --proxy-config proxy.config.json",
        "build": "ng build --env=test --prod --build-optimizer",
        "test": "ng test",
        "lint": "ng lint",
        "e2e": "ng e2e"
      },
      "private": true,
      "dependencies": {
        "@angular/compiler": "^5.2.0",
        "@angular/core": "^5.2.0"
      },
      "devDependencies": {
        "@angular/cli": "~1.7.3",
        "@angular/compiler-cli": "^5.2.0",
        "@types/bootstrap": "^4.0.1",
       
        "tslint": "~5.9.1",
        "typescript": "~2.5.3"
      }
    }
    

    这是一个package.json,其中的dependencies意为附属品,在此表示依赖之意。
    dependencies表示最终构建的项目里需要用到的依赖,dependencies表示生产环境需要的依赖,devDependencies表示开发、构建这个过程中需要的依赖。如炒菜需要盐和铁勺,前者是dependency,后者是devDependency。

    注意到dependencies和devDependencies中的版本号前面的修饰符,^和~,这二者的区别是什么呢?
    github提出语义化版本规范Semver。具体细节如下:

    • 版本用形如 主版本号.次版本号.修订号 的三个数字表示,即major.minor.patch
    • 主版本号(major):当你做了不兼容的 API 修改,如 angular1.x.x=>angular2.0.0
    • 次版本号(minor):当你做了向下兼容的功能性新增,可以理解为Feature版本,如angular1.5.5增加了新功能,发布1.6.0
    • 修订号(patch):当你做了向下兼容的问题修正,可以理解为Bug fix版本。如angular1.5.4修改了bug,发布angular1.5.5。
      这三个数字之后,还可以用三个修饰符,alpha、beta、rc,分别表示内测版本、公测版本、正式版本的候选版本。在正式版本发布前,如需发布先行版本,则可使用这三个修饰符。如React的版本发布日志:


      3649824190-5ad41542bc553_articlex.png

    ^表示主版本号不变,
    ~表示要保证次版本号不变,

    "jquery": "^2.1.0", //安装的时候就会下载2.x.x的最新版,即2.2.4
    "jquery": "~2.1.0", //安装的时候就会下载2.1.x的最新版,即2.1.4
    
    参考文献:

    Semver(语义化版本号)扫盲
    语义化版本 2.0.0

    相关文章

      网友评论

        本文标题:语义化版本规则

        本文链接:https://www.haomeiwen.com/subject/smqbhqtx.html