如何unpublish

作为package所有者或合作者,如果您的package没有dependents,则可以使用CLI从npm注册表中永久删除它。 您可以在初次发布后的72小时内unpublish。 超过72小时后,如果符合某些条件,您仍然可以unpublishpackage。

从packages中删除所有协作者或团队不会unpublish

npm Unpublish 政策

注册表数据是不可变的,这意味着一旦发布,package就无法更改。 我们这样做是出于依赖那些packages的用户的安全性和稳定性的考虑。 因此,如果您曾经在1.1.0版中发布过一个名为“bob”的package,那么在该版本中就不会再发布任何使用该名称的package。 即使该package未发布,也是如此。

但是,由于发生事故,我们允许您在以下情况下unpublish package。 否则,您始终可以弃用package。

不到72小时前发布的packages

对于新创建的packages,只要npm Public Registry中没有其他package依赖于您的package,您就可以在发布后的前72小时内随时取消发布。

Packages发布超过72小时

无论package发布多久,您都可以取消发布以下package:

  • npm Public Registry中没有其他package依赖
  • 过去一周下载量少于300
  • 有一个所有者/维护者

unpublish packages的单个版本

要unpublish packages的单个版本,请运行以下命令,将<package-name>替换为您的packages的名称,并将<version>替换为您的版本号:

npm unpublish <package-name>@<version>

unpublish整个package

要unpublish整个package,请运行以下命令,将<package-name>替换为您的package名称:

npm unpublish <package-name> -f

如果为writes启用了双重身份验证,则需要向unpublish命令--otp=123456添加一个一次性密码(其中123456是您的身份验证器应用程序中的代码)。

何时unpublish

unpublish packages会从注册表中永久删除该packages,因此其他用户将无法再使用该packages进行安装。 包未发布后,就无法重新发布。 如果您错误地unpublish了package,建议您以其他名称重新发布,或者对于未发布的版本,建议增加版本号并重新发布。

您可能要unpublish packages,因为:

  • 不小心发表了一些东西。
  • 想测试npm。
  • 您不打算公开发布的内容。
  • 要重命名packages。 (重命名包的唯一方法是使用新名称重新发布它)

package-name@version是唯一的,并且不能通过unpublish和重新发布来重用。我们建议改为发布次要版本更新。

何时deprecate

如果您不再对维护package感兴趣,但是希望它对用户保持可用,或者您的package具有依赖关系,则建议您deprecating它。

npm deprecate <pkg>[@<version>] <message>

此命令将更新package的npm注册表项,向所有尝试安装该package的人提供弃用警告。

它适用于版本范围以及特定版本,因此您可以执行以下操作:

npm deprecate my-thing@"< 0.2.3" "critical bug fixed in v0.2.3"

您必须是程序包所有者才能弃用某些内容。 请参阅owneradduser帮助主题。

要un-deprecate,请为message参数指定一个空字符串(“”)。 请注意,必须使用双引号,且双引号之间不能有空格,以格式化空字符串。

将deprecated package传输到npm

如果您不再维护package,而是其他用户依赖它,并且希望将其从用户个人资料中删除,则可以将其转移到npm,Inc.拥有的@npm用户帐户。

将package转移到npm帐户后,您将无法再对其进行更新。

要将package转移到npm用户帐户,请依次运行以下两个命令,将<user>替换为您的npm用户名,并将<package-name>替换为您要转移的package:

npm owner add npm <package-name>
npm owner rm <user> <package-name>

如果您具有双重身份验证,请在命令中添加一次性密码--otp=123456(其中123456是来自身份验证器的代码)。