常见的npm版本规则

版本号规则

从日常的开发中我们可以看到,npm 包的版本号的格式都是 X.Y.Z。那么大家发布的 npm 包为什么都在遵循这个格式呢?这个格式其实是由 Gravatars 创办者兼 GitHub 共同创办者 Tom Preston-Werner 所建立。由 GitHub 起草的统一的版本号表示规则,称为 Semantic Versioning(语义化版本表示)。这些规范具体包含的内容大家可以参考语义化版本 2.0.0。本文只针对我们开发中容易忽略的地方做一些详述。

  • X 代表主版本号,也叫做大版本号

    升级大版本时意味着这个包可能做了颠覆性的改动,和低版本的包已经无法兼容。每当主版本号递增时,次版本号和修订号必须归零。

  • Y 代表次版本号,也叫做小版本号

    当做了向下兼容的功能性新增时,升级小版本号。每当次版本号递增时,修订号必须归零。

  • Z 代表修订号

    当做了向下兼容的问题修正(bugfix)时, 升级修订号。

常见版本格式/引用方式

版本引用方式 版本号 匹配版本 解释
直接使用版本号 2.3.1 2.3.1 只可以匹配 2.3.1 这个版本,如果是比较重要的项目,建议用这种方式固定版本。
^:不能修改版本号最左侧非零数字 ^2.3.1 >= 2.3.1 && < 3.0.0 最左侧非零数字是 2
^0.3.1 >= 0.3.1 && < 0.4.0 最左侧非零数字是 3
^0.0.1 >= 0.01 && < 0.02,即 0.01 最左侧非零数字是 1
~:版本号列出 Y 时兼容 Z 的修改。列出 X 时兼容 Y、Z ~2.3.1 >= 2.3.1 && < 2.4.0 Y 为 3。~2.3 同理
~2 >= 2.0.0 && < 3.0.0 X 为 2
*、X、x,空:表示可以匹配任何版本 "2.3.X"、"2.3.x"、"2.3*"、"2.3" >= 2.3.0 && < 2.4.0 Z 可以为任意值
"2.X"、"2.x"、"2.*"、"2" >= 2.0.0 && < 3.0.0 Y、Z 为任意值
*、X、x,空 任意版本 任意版本指的是最新的正式版
posted @ 2022-12-12 09:20  不再犯错  阅读(1149)  评论(0编辑  收藏  举报