我想知道版本控制在package.json
开发周期中是如何工作的。
一个版本属性中的每个数字的含义是什么package.json
,例如下面的那个?
{
"name": "A NodeJS Project",
"version": "0.0.0",
...
}
我想知道版本控制在package.json
开发周期中是如何工作的。
一个版本属性中的每个数字的含义是什么package.json
,例如下面的那个?
{
"name": "A NodeJS Project",
"version": "0.0.0",
...
}
npm 使用的package.json
文件遵循语义版本控制模型。它遵循major.minor.patch
模式。在http://semver.org/上有一个专门用于解释语义版本化过程的完整站点。您还应该查看 npm 版本手册页,其中提供了更多详细信息:https ://npmjs.org/doc/cli/npm-version.html 。
这不是 semver。这是看起来很漂亮的版本号。包版本不需要遵循 semver 的语义,它只是像 semver 一样排序。
通常这三个数字有这个含义:
major
当有很大的更改很可能需要在更新时对您的应用程序进行重大更改时,调用的第一个数字会增加。
minor
当存在大部分向后兼容的小更改时,调用的第二个数字会增加。它可能会破坏某些应用程序,但这是一个例外。
micro
几乎每次将新版本推送到 npm 时,调用的第三个数字都会增加。在微更新中包含重大更改被认为是一种不好的做法,但有时甚至 npm 本身也会这样做。
但它不是一成不变的,基本上你可以选择你想要的每个版本号。例如,esprima-fb
包使用这样的版本控制:1001.1001.2000-dev-harmony-fb
. 这些数字也有意义,但显然不是 semver。
编辑:我想包括 balupton 对来自twitter的版本号的定义,因为它确实更准确地反映了当前的现状。
- 修订 = 没有 b/c 中断
- 未成年人 = b/c 休息一些
- 专业 = 每个人的 b/c 休息时间
... 其中 b/c 表示向后兼容性