如何理解npm包的package.json文件中的版本控制?

我想知道在开发周期中, package.json中的版本是如何工作的。

一个package.json版本属性中每个数字的含义是什么,比如下面的那个?

 { "name": "A NodeJS Project", "version": "0.0.0", ... } 

这不是半个。 这是一个粗糙的版本号。 包版本并不要求遵循semver的语义,它只是像semver一样sorting。

通常这三位数字有这个意思:

  • 第一个被称为major数字会在发生大的变化时增加,这些变化很可能需要对应用程序进行更新。

  • 当小的变化大多向后兼容时,称为minor第二个数字增加。 它可能会破坏一些应用程序,但是这是一个例外。

  • 几乎每次将新版本推送到npm时,称为micro第三个数字都会递增。 在微更新中包含突破性改变被认为是一种不好的做法,但有时甚至npm本身也会这样做。

但它并不是一成不变的,基本上你可以select你想要的每个版本号。 例如, esprima-fb软件包使用如下版本: 1001.1001.2000-dev-harmony-fb 。 这些数字也是有意义的,但显然不是半个的。


编辑 :我想包括从叽叽喳喳巴鲁普顿的版本号的定义,因为它确实反映了目前的现状更精确。

  • 修订=没有B / Crest
  • 未成年人= b / c打破了一些
  • 专业= B / C为每个人rest

b / c意味着向后兼容

npm使用的package.json文件遵循语义版本模型。 它遵循major.minor.patch模式。 在http://semver.org/上有一整个站点专门用来解释语义版本的过程。 你也应该看看npm版本手册页,它提供了更多的细节: https : //npmjs.org/doc/cli/npm-version.html 。