美文网首页
npm 语义化版本规范整理

npm 语义化版本规范整理

作者: yuho_小豪哥 | 来源:发表于2019-11-13 09:20 被阅读0次

    每个项目的根目录下都有一个 package.json 文件,定义了这个项目所需的各种模块,以及项目的配置信息。其中,dependencies 字段指定了项目运行所依赖的模块,devDependencies 指定项目开发所需要的模块。

    语义化版本管理

    dependenciesdevDependencies 都指向一个对象。该对象的各个成员,分别由模块名和对应的版本要求组成,表示依赖的模块及其版本范围。这里使用了 Semver (语义化版本)来控制。示例如下:

      "dependencies": {
        "@babel/core": "^7.5.4",
        "@babel/preset-env": "^7.5.4",
        "babel-core": "^6.26.3",
        "babel-jest": "^24.8.0",
        "babel-preset-env": "^1.7.0",
        "jest": "^24.8.0",
        "regenerator-runtime": "^0.13.2"
      }
    

    版本格式

    一般为:

    主版本号.次版本号.修订号
    

    不同版本号递增规则如下:

    • 主版本号(major):当你做了不兼容的 API 修改(大版本修改)
    • 次版本号(minor):当你做了向下兼容的功能性新增,可以理解为 Feature 版本
    • 修订号(patch):当你做了向下兼容的问题修正,可以理解为 Bug fix 版本

    各种版本限定

    • 指定版本:比如1.2.2,遵循“大版本.次要版本.小版本”的格式规定,安装时只安装指定版本。
    • 波浪号(tilde)+指定版本:比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是不安装1.3.x,也就是说安装时不改变大版本号和次要版本号。
    • 插入号(caret)+指定版本:比如ˆ1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是不安装2.x.x,也就是说安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。
    • latest:安装最新版本。
    • 更多可以参考:NPM版本控制符^,~,>,||,-的含义详解

    参考文档

    相关文章

      网友评论

          本文标题:npm 语义化版本规范整理

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