npm发布早期主要版本的补丁

时间:2014-07-11 06:25:12

标签: npm

我似乎无法找到有关npm如何与存储库中的分支一起工作的信息。

假设npm包当前版本为: 1.0.5

主要更改需要更改 1.0.5 =>的版本的 2.0.0

部分用户继续使用 1.x.x 以避免更改。

如果在 1.0.5 中发现错误,则需要修复 1.xx 用户需要更改版本 1.0.5 =>的 1.0.6

实际上,这是分支。我为 1.x.x 用户创建了一个git分支,并继续使用git的master分支 2.x.x

但这如何适应npm?我应该发布较旧的npm版本 1.0.6 吗?在这种情况下, 1.0.6 不会成为最新版本,而实际上 2.0.0 应该是npm install时的默认值。

我无法找到npm的分支相关信息。我确定以上是常见的情况,但我找不到任何信息。请有人指出我正确的方向。

1 个答案:

答案 0 :(得分:50)

您走在正确的轨道上 - 您希望在不更新package@1.0.6标记的情况下发布latest。您可以通过向--tag <tagname> -

提供npm publish参数来执行此操作
cd project
git checkout old-branch
grep version package.json
  "version": "1.0.5",
[make changes]
git commit
npm version patch
grep version package.json
  "version": "1.0.6",
npm publish --tag old-version

只要您向--tag <tagname>提供npm publish参数,latest标记就不会更新,使用npm install <package>npm install <package>@latest的人仍然会得到2.x版本。

请注意,标记名必须与版本号共享命名空间,因此最好选择看起来不像semver版本的标记名;避免'1.0.6'或'v1.0.6'。

来源:https://docs.npmjs.com/cli/publish 并且:https://docs.npmjs.com/getting-started/using-tags