当前位置: 首页 > news >正文

package.json 中的那些版本数字前面的符号是什么意思?

1. 语义化版本(SemVer)

语义化版本的格式是 MAJOR.MINOR.PATCH,其中:

  • MAJOR:主版本号,表示不兼容的 API 修改。
  • MINOR:次版本号,表示新增功能但保持向后兼容。
  • PATCH:修订号,表示修复错误但保持向后兼容。

2. 常见的版本范围符号

^(caret 符号)

  • 表示允许安装最新的次版本(MINOR)或修订版本(PATCH),但不包括主版本(MAJOR)的更新

  • 适用于大多数情况下,确保兼容性。

  • 示例

    "dependencies": {"lodash": "^4.17.21"
    }
    

    允许安装 4.x.x 版本,但不包括 5.x.x。

~(波浪号符号)

  • 表示允许安装最新的修订版本(PATCH),但不包括次版本(MINOR)或主版本(MAJOR)的更新。

  • 更严格,适用于对次版本更新比较敏感的场景

  • 示例

    "dependencies": {"express": "~4.17.1"
    }
    

    允许安装 4.17.x 版本,但不包括 4.18.x 或更高版本。

*(星号符号)

  • 表示允许安装任何版本。

  • 示例

    "dependencies": {"chalk": "*"
    }
    

    允许安装 chalk 的任何版本(不推荐,可能会引入不兼容的更新)。

> 和 <(大于或小于符号)

  • 用于指定版本范围。

  • 示例

    "dependencies": {"debug": ">2.6.9 <3.0.0"
    }
    

    允许安装 2.6.9 到 3.0.0 之间的版本。

>= 和 <=(大于等于或小于等于符号)

  • 用于指定版本范围。

  • 示例

    "dependencies": {"morgan": ">=1.10.0"
    }
    

    允许安装 1.10.0 或更高版本。

||(垂直线符号)

  • 用于指定多个版本范围。

  • 示例

    "dependencies": {"some-package": "1.0.0 || >=2.0.0 <3.0.0"
    }
    

    允许安装 1.0.0 或 2.x.x 版本。

    -(连字符符号)

  • 用于指定一个版本范围。

  • 示例

    "dependencies": {"another-package": "1.0.0 - 2.0.0"
    }
    

    允 许安装 1.0.0 到 2.0.0 之间的版本。

    x 或 X(字母符号)

  • 表示通配符,允许安装任何版本。

  • 示例

    "dependencies": {"test-package": "1.x.x"
    }
    

    允许安装 1.x.x 版本(如 1.0.0、1.1.0 等)。

版本范围的组合

可以组合使用这些符号来指定复杂的版本范围。例如:

"dependencies": {"example-package": ">=1.2.3 <2.0.0 || >=3.0.0"
}
  • 允许安装 1.2.3 到 2.0.0 之间的版本,或者 3.0.0 及更高版本。

总结

符号含义
^允许最新的次版本或修订版本,但不包括主版本更新。
~允许最新的修订版本,但不包括次版本或主版本更新。
*允许任何版本
> 或 <指定大于或小于某个版本
>= 或 <=指定大于等于或小于等于某个版本
- 或 X指定一个版本范围。
x 或 X通配符,允许任何版本

相关文章:

  • WSL2-Ubuntu22.04安装URSim5.21.3
  • jvm调优工具arthas(阿尔萨斯)安装与使用---实践
  • 宫庭海:跨界融合与家国情怀的影视开拓者
  • 机器学习 Day11 决策树
  • Ubuntu 20.04.6编译安装COMFAST CF-AX90无线网卡驱动
  • OpenHarmony Camera开发指导(四):相机会话管理(ArkTS)
  • js day2
  • 十五种光电器件综合对比——《器件手册--光电器件》
  • FastAPI与SQLAlchemy数据库集成
  • 2025.04.17【Dendrogram】生信数据可视化:Dendrogram图表详解
  • 无人机姿态稳定与动态控制模块概述!
  • 第六章:6.3求一个3*3的整型矩阵对角线元素之和
  • 基于FreeRTOS和STM32的微波炉
  • Google C++ Style Guide
  • Linux 文件传输:系统数据交互的动脉
  • 极狐GitLab 外部流水线验证功能解读
  • SpringAI+DeepSeek大模型应用开发——4 对话机器人
  • 多模态大模型的算力需求预测:从理论FLOPs到实际集群配置(搭建算力成本评估模型的方法论)
  • Linux,redis群集模式,主从复制,读写分离
  • 山东大学软件学院创新项目实训开发日志(15)之中医知识问答历史对话查看bug处理后端信息响应成功但前端未获取到
  • 继71路之后,上海中心城区将迎来第二条中运量公交
  • 多地警务新媒体整合:关停交警等系统账号,统一信息发布渠道
  • 尊严的代价:新加坡福利体系下的价值困境
  • 《审判》|“被告”的魅力:K在等什么?
  • 农行深圳市分行原副行长王国彪涉嫌严重违纪违法被查
  • 巴基斯坦全国航班仍持续延误或取消