全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 2026-05-25 6 分钟 ✍️ juanwangdev

语义化版本与npm version

版本号不仅是数字,它向用户传达了变更的兼容性信息。

语义化版本SemVer

版本格式

语义化版本格式为主版本.次版本.补丁版本(MAJOR.MINOR.PATCH):

Bash
1.2.3
│ │ │
│ │ └── 补丁版本:向下兼容的Bug修复
│ └──── 次版本:向下兼容的功能新增
└────── 主版本:不兼容的API变更

版本递增规则

场景递增位示例
修复BugPATCH1.2.3 → 1.2.4
新增功能MINOR1.2.3 → 1.3.0
破坏性变更MAJOR1.2.3 → 2.0.0

预发布版本

Bash
1.2.3-alpha.1
1.2.3-beta.2
1.2.3-rc.1

预发布版本优先级低于正式版本:1.2.3-alpha.1 < 1.2.3

次版本或主版本递增时,补丁版本归零;主版本递增时,次版本和补丁版本同时归零。

npm version命令

基本用法

Bash
# 递增补丁版本 1.2.3 → 1.2.4
npm version patch

# 递增次版本 1.2.3 → 1.3.0
npm version minor

# 递增主版本 1.2.3 → 2.0.0
npm version major

设置预发布版本

text
# 创建alpha版本 1.2.3 → 1.2.4-alpha.0
npm version prerelease --preid=alpha

# 手动指定完整版本
npm version 2.0.0-beta.1

执行效果

npm version会做两件事:

  1. 修改package.json中的version字段
  2. 自动创建一个git commit和tag
text
# 不自动提交git
npm version patch --no-git-tag-version

# 仅修改版本不创建tag
npm version patch --commit-hooks=false

执行npm version前需确保工作区无未提交的改动,否则命令会报错中断。

要点总结

  • SemVer格式为MAJOR.MINOR.PATCH,分别对应不兼容变更、功能新增、Bug修复
  • 次版本递增补丁归零,主版本递增次版本和补丁都归零
  • npm version patch/minor/major自动递增并创建git commit和tag
  • 工作区有未提交改动时npm version会失败,需先提交或暂存
想在手机上练习这篇文章的配套题目?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一篇 npm包搜索与指定版本安装
下一篇 → npm publish发布流程
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码