如何解决将以前的主要版本发布到 npm 没有标记并避免使用最新的
有没有最好的方法来发布一个 npm 包的以前的主要版本而不为它添加标签?我们当前的主要版本是 3.x (v3),所以我们npm publish
那个版本会自动给它 latest
标签。当我们发布对 2.x
版本 (v2) 的更新时,我们必须给它一个标签,这样它就不会自动从 v3 中获取 latest
标签。
我们可以做一些类似 previous
的事情,尽管它的含义是主观的。实际上,我们根本不需要 v2 的标签。如果人们想要安装 v2,Semver 效果很好。是否有比使用标签发布并添加删除标签的 postpublish
脚本更好的解决方案来不添加不必要的标签? (我写的时候听起来很荒谬)
解决方法
查看 this comment from 2015,“按照设计,每个发布都必须与一个 dist-tag 相关联。”不幸的是,我没有看到绕过 libnpmpublish 和 npm 的当前代码中的标记的方法。
因此,我认为您已经有了最好的选择:在另一个标签下发布,无论该标签是否是临时的。
但是,如果我可以提出建议...
您可以考虑在名为 previous
的标签下发布以前的版本,而不是主观的 v2
标签。这是我注意到 Angular team 用于 LTS 版本的一种模式,例如:
虽然我认为它对消费者的用处很小,因为他们可以只是 npm install @angular/core@11
而不是 npm install @angular/core@v11-lts
,但它可能是一种更简洁的发布方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。