• node 模块版本号里里的^ ~ *符号都是啥什么意思。



    ~x.y.z: 匹配大于 x.y.z 的 z 的最新版
    ^x.y.z: 匹配大于 x.y.z 的 y.z 的最新版

    *: 任意版本,一般是最后一次正式发布版本(包括非 latest tag),不是最大版本号版本

    一个标准的版本号必须是X.Y.Z的形式,X是主版本,Y是副版本,Z是补丁版本。.

    X: 代表发生了不兼容的API改变
    Y: 代表向后兼容的功能性变化
    Z: 代表向后兼容bug fixes
    语义化版本号规则

    X.Y.Z - A.B.C 连字符范围

    1.2.3 - 2.3.4 等价于 >=1.2.3 <=2.3.4
    1.2.3 - 2 等价于 >=1.2.3 <3.0.0

    ~1.2.3 波浪线范围

    ~1.2.3 等价于 >=1.2.3 <1.(2+1).0 等价于="">=1.2.3 <1.3.0
    ~1.2 等价于 >=1.2.0 <1.(2+1).0 等价于="">=1.2.0 <1.3.0 (Same as 1.2.x)
    ~1 等价于 >=1.0.0 <(1+1).0.0 等价于 >=1.0.0 <2.0.0 (Same as 1.x)

    ~0.2.3 等价于 >=0.2.3 <0.(2+1).0 等价于="">=0.2.3 <0.3.0
    ~0.2 等价于 >=0.2.0 <0.(2+1).0 等价于="">=0.2.0 <0.3.0 (Same as 0.2.x)
    ~0 等价于 >=0.0.0 <(0+1).0.0 等价于 >=0.0.0 <1.0.0 (Same as 0.x)

    ^1.2.3 脱字符范围

    脱字符范围之后指定从左面起第一个非零位置的范围。

    ^1.2.3 等价于 >=1.2.3 <2.0.0
    ^0.2.3 等价于 >=0.2.3 <0.3.0
    ^0.0.3 等价于 >=0.0.3 <0.0.4,即等价于0.0.3

    当然如果最后一位省略了或为通配符x,X,*,则指定前一位字符的范围,如

    ^1.2.x 等价于 >=1.2.0 <2.0.0
    ^0.0.x 等价于 >=0.0.0 <0.1.0
    ^0.0 等价于 >=0.0.0 <0.1.0

    地址:https://segmentfault.com/q/1010000006124708     从这个问题贴过来的,免的忘了呢。 或许也能让更多的人看到。

  • 相关阅读:
    互联网公司笔试常见陷阱
    华为机试题(地铁换乘,图的应用)
    容器(vector)、数组、new创建的动态数组,你到底用哪一个(执行效率分析)
    SpringMVC全局异常
    github commit contributions无记录
    elasticSearch之查询
    nginx负载均衡策略
    docker入门
    解决centos&win安装安装elasticSearch无法运行
    2017年终总结
  • 原文地址:https://www.cnblogs.com/qianshui/p/7403197.html
Copyright © 2020-2023  润新知