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

Kay*_*ayo 36 npm

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

假设npm包当前版本为:1.0.5

主要更改需要从1.0.5 => 2.0.0进行版本更改

一些用户继续使用1.xx以避免更改.

如果在1.0.5中发现了一个错误,则需要修复1.xx用户需要从1.0.5 => 1.0.6进行版本更改

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

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

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

Sam*_*kes 60

您走在正确的轨道上 - 您希望在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
Run Code Online (Sandbox Code Playgroud)

只要您提供--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