构建与工具
语义化版本(semantic versioning · semver)
语义化版本(semantic versioning,简称 semver)是一套大家公认的版本号写法,把版本号写成三段——主版本.次版本.修订号,比如 2.4.1——每一段都对「改了什么」做出明确承诺。它的妙处在于:光看这个号码,你就能判断一次更新是可以放心拿来,还是很可能把你弄崩。
从左往右读。修订号(PATCH)加一(2.4.1 → 2.4.2)表示一个向后兼容的 bug 修复:安全。次版本(MINOR)加一(2.4.1 → 2.5.0)是加了新功能,但没破坏旧的:依然安全。主版本(MAJOR)加一(2.4.1 → 3.0.0)则是最响亮的那声警告——它在喊「我删掉或改动了某些东西,你的代码可能得跟着改」。
你清单文件里那些小符号,说的也正是这件事。脱字符「^1.2.3」意思是「更新的 1.x 都行,但绝不跳到 2.0」——除了主版本升级,它什么都信。波浪号「~1.2.3」更严格:「只要 1.2 里更新的修订号就好」。靠它们,你能自动收下那些安全的修复,同时绕开那些会咬人的改动。
2.4.1 │ │ └─ PATCH — backward-compatible bug fix (safe) │ └─── MINOR — new features, nothing broken (safe) └───── MAJOR — breaking change (read the notes!) ^1.2.3 → any 1.x, never 2.0 ~1.2.3 → only newer patches of 1.2
三个数字,三种承诺——符号则决定你愿意接受多新的版本。
0.x.y 是「蛮荒地带」:1.0 之前规则比较松,连次版本升级都可能搞坏东西。那个阶段要小心些。
又称
另见