常见的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,空 | 任意版本 | 任意版本指的是最新的正式版 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2016-12-12 angularjs实现时钟效果