1.0.0 之前版本控制 npm 包的约定是什么?
What is the convention for versioning npm packages prior to 1.0.0?
我正在阅读有关 npm
的版本控制,显然它提供了一个非常方便的命令来提升您的包版本。
npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease]
预发布
假设您的软件包起始版本为 0.0.0
npm version prerelease
=> 0.0.1-0
npm version prerelease
=> 0.0.1-1
基本上只是在破折号后增加数字
预补丁
从 0.0.0
开始,改用 pre[major|minor|patch]...
npm version prepatch
=> 0.0.1-0
npm version preminor
=> 0.1.0-0
npm version premajor
=> 1.0.0-0
补丁
从 0.0.0
开始使用补丁...
npm version patch
=> 0.0.1
npm version patch
=> 0.0.2
我了解提升主要次要版本和补丁版本的规则,但是在 1.0.0
之前版本控制的标准约定是什么?
TLDR
我还没有看到使用 pre-1.0.0 的预发布版本。这似乎毫无意义,因为 public API 尚未最终确定。它们在 1.0.0 发布后变得有用。
那么预发布版本什么时候有用?
来自semver.org:
Version 1.0.0 defines the public API. The way in which the version number is incremented after this release is dependent on this public API and how it changes.
和:
A pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version. ...A pre-release version indicates that the version is unstable and might not satisfy the intended compatibility requirements as denoted by its associated normal version.
我在 1.0.0 之前看到的约定包括对错误 fixes/typos 使用补丁和对任何重大修改使用次要版本。 1.0.0 之前的约定不太严格,因为还没有 public API 得到保证。
当您想与社区分享一些早期功能时,预发布版本会派上用场。
例如,在撰写本文时,npm-check-updates 的最新稳定版本是版本 1.5.1
。我添加的一些新功能引入了向后不兼容的更改,因此为了符合 semver,我将不得不在 2.0.0
下发布它们。然而,在社区对它进行更彻底的测试之前,我不想将 2.0.0
作为最新的稳定版本发布。因此,我发布了预发布版本(使用 npm publish --tag unstable
),版本号为 2.0.0-alpha.1
。社区成员可以安装预发布版本(npm install -g npm-check-updates@unstable
)来试用最新功能,而正常的 npm install -g npm-check-updates
将继续为大多数用户安装稳定的 1.5.1
版本。当预发行版证明了自己的实力后,我可以轻松地将其作为新稳定版发布在 2.0.0
.
我正在阅读有关 npm
的版本控制,显然它提供了一个非常方便的命令来提升您的包版本。
npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease]
预发布
假设您的软件包起始版本为 0.0.0
npm version prerelease
=> 0.0.1-0
npm version prerelease
=> 0.0.1-1
基本上只是在破折号后增加数字
预补丁
从 0.0.0
开始,改用 pre[major|minor|patch]...
npm version prepatch
=> 0.0.1-0
npm version preminor
=> 0.1.0-0
npm version premajor
=> 1.0.0-0
补丁
从 0.0.0
开始使用补丁...
npm version patch
=> 0.0.1
npm version patch
=> 0.0.2
我了解提升主要次要版本和补丁版本的规则,但是在 1.0.0
之前版本控制的标准约定是什么?
TLDR
我还没有看到使用 pre-1.0.0 的预发布版本。这似乎毫无意义,因为 public API 尚未最终确定。它们在 1.0.0 发布后变得有用。
那么预发布版本什么时候有用?
来自semver.org:
Version 1.0.0 defines the public API. The way in which the version number is incremented after this release is dependent on this public API and how it changes.
和:
A pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version. ...A pre-release version indicates that the version is unstable and might not satisfy the intended compatibility requirements as denoted by its associated normal version.
我在 1.0.0 之前看到的约定包括对错误 fixes/typos 使用补丁和对任何重大修改使用次要版本。 1.0.0 之前的约定不太严格,因为还没有 public API 得到保证。
当您想与社区分享一些早期功能时,预发布版本会派上用场。
例如,在撰写本文时,npm-check-updates 的最新稳定版本是版本 1.5.1
。我添加的一些新功能引入了向后不兼容的更改,因此为了符合 semver,我将不得不在 2.0.0
下发布它们。然而,在社区对它进行更彻底的测试之前,我不想将 2.0.0
作为最新的稳定版本发布。因此,我发布了预发布版本(使用 npm publish --tag unstable
),版本号为 2.0.0-alpha.1
。社区成员可以安装预发布版本(npm install -g npm-check-updates@unstable
)来试用最新功能,而正常的 npm install -g npm-check-updates
将继续为大多数用户安装稳定的 1.5.1
版本。当预发行版证明了自己的实力后,我可以轻松地将其作为新稳定版发布在 2.0.0
.