我似乎无法找到有关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的分支相关信息。我确定以上是常见的情况,但我找不到任何信息。请有人指出我正确的方向。
答案 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