`npm publish -f`有解决方法吗

问题描述 投票:0回答:5

既然

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

我知道semver;我还想要

npm publish -f
.

node.js npm semantic-versioning
5个回答
28
投票

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

npm unpublish [email protected]

然后重新发布版本。

如果模块托管在您自己的 npm 存储库上,则此方法有效,但对于

registry.npmjs.org
,您将无法在取消发布后重新使用版本号,并且有一个时间限制(72 小时),之后您将无法再使用取消发布。请参阅npm 取消发布政策


26
投票

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

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

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


9
投票

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

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

等待24小时

npm publish


9
投票

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

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

所以:

npm unpublish
npm version patch
npm publish

会做的。


0
投票

我也遇到了类似的问题。我发布了一个新版本但内容相同的新包。

npm publish --access public (version - 0.1.1)

现在,删除原来的包。

npm unpublish -f [email protected]

等待 24 小时重新发布原始包并删除新包。

npm publish --access public (version - 0.1.0)
npm unpublish -f [email protected]

您的包用户将在 24 小时内找不到原始版本,因此包管理器将显示下拉菜单以选择其他版本,大多数将使用最新版本。

© www.soinside.com 2019 - 2024. All rights reserved.