我有一个npm包,我需要在npmjs.com上发布,但是因为我取消了以前错误的版本,现在npmjs不允许我重新发布相同版本的工件(它抛出一个错误,说You cannot publish over the previously published versions
)
在我的项目中,我使用了semantic-release,它会根据最后一个发布版本的提交自动计算要给予的版本。
因此,我想知道是否有一种方法可以将overwrite
或force
的语义发布给予与其计算的版本不同的版本,例如在CI中运行其命令时键入它
2条答案
按热度按时间jei2mxaa1#
semantic-release使用标签来确定最后一个版本和自那以后添加的新提交。为了跳过npm未发布的版本,您可以在与最新发布的版本相关联的提交上添加对应于该版本的Git标签。
git tag v<latest-version-published> v<version-to-skip>
git push --tags origin
然后重新运行失败的CI作业,以便再次运行semantic-release,获取新标记并从那里递增版本。
tuwxkamq2#
为了解决类似的问题,我从笔记本电脑运行以下命令:
git tag v5.2.0 #我根据最新的master创建一个新的标签。甚至可以是一个小更新/大更新git notes --ref semantic-release add -f -m '{“channels”:[“null”]}' v5.2.0 #我添加notes git push origin refs/tages/v5.2.0 #我将标签推送到origin git push --force origin refs/notes/semantic-release #我强制更新一个notes。即使我没有做任何rebase,这也是需要的
由于某些原因,删除标记并尝试用注解重新创建它是不起作用的,但是通过上面的过程,下一个语义发布运行找到我的标记并跳过它。