package.json 中的 version 一般遵循 语义化版本(Semantic Versioning,SemVer) 规范。
规范官网:
格式:
json
{
"version": "1.2.3"
}
对应:
MAJOR.MINOR.PATCH
主版本号.次版本号.修订号
1. PATCH(修订号)
1.0.0 → 1.0.1
适用于:
- Bug 修复
- 性能优化
- 文档修改
- 内部实现调整
且:
不会影响现有使用方式
不会破坏兼容性
例如:
1.0.0
↓
修复表格滚动异常
↓
1.0.1
2. MINOR(次版本号)
1.0.0 → 1.1.0
适用于:
新增功能
新增组件
新增 API
新增配置项
同时:
向后兼容
例如你的组件库:
1.0.0
新增:
xml
<TfChart />
升级:
1.1.0
老项目无需修改代码。
3. MAJOR(主版本号)
1.0.0 → 2.0.0
适用于:
破坏性变更
Breaking Change
例如:
原来:
ini
<TfTable :data="data" />
改成:
ini
<TfTable :rows="data" />
旧代码失效:
1.x.x
↓
2.0.0
常见版本演进
1.0.0
1.0.1
1.0.2
1.0.3
1.1.0
1.1.1
1.1.2
1.2.0
2.0.0
0.x.x 特殊规则
很多组件库初期:
json
{
"version": "0.1.0"
}
表示:
开发阶段
API 可能随时变化
不保证稳定
例如:
0.1.0
0.2.0
0.3.0
即使有 Breaking Change,也不一定升主版本。
很多开源项目都会经历:
0.1.0
0.5.0
0.9.0
1.0.0
预发布版本
Alpha
1.0.0-alpha.1
表示:
内部开发版
功能未完成
Beta
matlab
1.0.0-beta.1
表示:
功能基本完成
开始测试
RC
1.0.0-rc.1
表示:
sql
Release Candidate
发布候选版
通常:
1.0.0-rc.1
↓
1.0.0-rc.2
↓
1.0.0
npm 常用升级命令
修订版本:
npm version patch
1.0.0 → 1.0.1
次版本:
npm version minor
1.0.0 → 1.1.0
主版本:
npm version major
1.2.3 → 2.0.0