【问题标题】:Is there a workaround for `npm publish -f``npm publish -f` 是否有解决方法
【发布时间】:2023-04-06 07:17:01
【问题描述】:

现在npm publish -f 已被弃用,是否有解决方法或软件包可以在目标版本发布后覆盖

我知道semver;我还想要npm publish -f

【问题讨论】:

标签: node.js npm semantic-versioning


【解决方案1】:

有人在 npm 的 github 问题上这样说:

@nmrony 你不能再覆盖以前发布的包(如果我没记错的话,从 2014 年 2 月开始)。

https://github.com/npm/npm/issues/8305#issuecomment-236412989

【讨论】:

  • 快照没有办法做到这一点吗?就像一个 maven 风格的发布,可以让你在 repo 中累积相同版本的快照
【解决方案2】:

这可能不可行,但有一种矫枉过正的方法

npm unpublish --force - 将删除您的整个项目

等待 24 小时

npm publish

【讨论】:

    【解决方案3】:

    您可以取消发布特定版本,然后重新发布:

    npm unpublish myModule@1.2.3
    

    然后重新发布版本。

    如果模块托管在您自己的 npm 存储库上,这将无限期地工作,但根据 this,如果托管在 registry.npmjs.org 上,您可以在时间限制(72 小时)内完成。

    【讨论】:

    • 警告如果您为唯一已发布的版本执行此操作,那么您需要等待 24 小时才能再次发布
    【解决方案4】:

    根据npm docs这个未发布的版本不能重新发布,bump一个补丁版本并发布

    一旦一个包被取消发布,它就不能被重新发布。如果您错误地取消发布了一个包,我们建议您以不同的名称再次发布,或者对于未发布的版本,增加版本号并再次发布。

    所以:

    npm unpublish
    npm version patch
    npm publish
    

    会做的。

    【讨论】:

    • 我在找npm version patch,因为我写了一个模块来为我发布模块。
    • npm version patch 不会从远程读取实际版本。它将增加到本地可用的值。因此,要从远程获取信息,请执行以下操作:npm info MODULE-NAME
    猜你喜欢
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    相关资源
    最近更新 更多