• package.json中的版本号


    一直对 package.json 文件中的版本号处于一个清晰与模糊之间的界限
    也知道这个版本号是遵循 semver的规则.
    但是这个规则中是没有比如 ^~ 等标志的规定的. 所以具体到 package.json 中这些版本是什么意思呢?

    我列举了一下, 这其中的场景, 直接给出解释. 不过在此之前, 需要简单说一下, 详细的可以参照我上边说的 semver 的解释.

    版本号, 大体上分为 3 个部分 a.b.c-xyz

    • a 为主版本号, 不过一般版本号 0 不作为正式版本发布, 并且版本之间不一定实现兼容
    • b 为次版本号, 在此版本上有一些功能性的区分
    • c 为修订号, 可以进行比如一些bug上的修正
    • xyz 的部分为一些更细节的标注等,不过这些有标注的版本号按照规定是低于正式的版本号的, 比如 1.1.1-beta 是低于 1.1.1 的.

    整体解释

    说一些经常让人费解的 ^&

    • ^ 表示与版本兼容, 兼容就很有意思, 什么叫兼容呢, 按照 semver 中第一个号码之间我们认为是不兼容的, 即 1.0.0 与 2.0.0 是不一定兼容的. 但是存在一些场景,比如 1.1.0 兼容版本从最左边的非0版本号算起, 即 ^1.1.0 表示 >=1.1.0 <2.0.0. ^0.0.3 表示 >=0.0.3 <0.0.4
    • ~ 表示约等于版本, 即 如果存在次版本号,则允许修订号为更高版,否则允许次版本号为更高版。人话的意思就是说 ~1.2.0 存在 次版本号 2, 那么表示为 >=1.2.0 <1.3.0, 即修改修订号; ~1.0.0 只有最高版本号, 那么表示 >=1.0.0 <2.0.0, 即修改次版本号

    ^ 表示兼容,(我们从最左侧的非0版本号算起); ~ 表示约等于, 我们将"最右侧"的版本号进行"约算"

    下边就列举一些版本号的一些具体解释

    表达式 范围 解释
    1.2.3 1.2.3 精确匹配1.2.3版本
    ~1.2.3 >=1.2.3 <1.3.0 将"最右侧"的进行约等
    ~1.0.0 >=1.0.0 <2.0.0
    ^1.2.3 >=1.2.3 <2.0.0 将最左侧的非0以下的位数进行兼容
    ^0.0.3 >=0.0.3 <0.0.4

    其他的情况就比较好理解了.
    X x * 表示通配
    >= <= - 直接进行理解就可以了

    附上一些参考链接:
    semver
    看看俺 – KanKanAn.com

  • 相关阅读:
    CF799B T-shirt buying
    luogu3469 [POI2008]BLO_Blockade
    luogu2746 校园网
    USACO 2.2 Party Lamps 【高能等效+规律枚举】
    USACO 2.2 Subset Sums 【经典的方案DP+必要的转化】
    USACO 2.2 Preface Numbering 【实质是分治思想】
    bzoj 1051: [HAOI2006]受欢迎的牛 (Tarjan 缩点)
    bzoj 1088: [SCOI2005]扫雷Mine
    bzoj 2761: [JLOI2011]不重复数字 (map||Treap)
    bzoj 1230: [Usaco2008 Nov]lites 开关灯
  • 原文地址:https://www.cnblogs.com/asdfq/p/13799791.html
Copyright © 2020-2023  润新知