如何从npm注册表中删除npm包?

时间:2016-04-29 01:11:37

标签: javascript node.js npm

有没有办法从npm注册表中删除或删除整个模块?

注意:npm -f unpublish不允许您取消发布任何超过24小时的内容

6 个答案:

答案 0 :(得分:26)

鉴于最近发生的事件,有一篇关于此的帖子。你最好的选择是联系npm并希望你的包裹不被其他项目所依赖。

  

如果版本超过24小时,则取消发布将失败,并显示与support@npmjs.com联系的消息。

     

如果您与支持人员联系,他们将检查是否删除了该版本的软件包会破坏任何其他安装。如果是这样,我们不会删除它。您要么必须转移包的所有权,要么转到依赖包的所有者以更改其依赖关系。

     

http://blog.npmjs.org/post/141905368000/changes-to-npms-unpublish-policy

答案 1 :(得分:12)

TL; DR:

npx force-unpublish package-name 'reason message'

说明:

  1. npm deprecate package-name 'reason message'
  2. npm owner add npm package-name
  3. npm owner rm $(npm whoami) package-name
  

https://www.npmjs.com/package/force-unpublish

答案 2 :(得分:9)

我偶然发现了一个必须删除现有软件包的问题。并且以下无缝地工作。我注意到该软件包立即从我的帐户中删除(这是一个没有依赖性的测试软件包。)

npm --force unpublish "package-name"

如果在npm帐户上配置了2FA,则可能必须输入OTP / Auth密钥。

答案 3 :(得分:7)

如果发布的软件包/版本少于72小时,除非您是模块的唯一所有者。

npm unpublish <package-name> --force

https://www.npmjs.com/policies/unpublish包含取消发布软件包的政策的详细信息

自提出问题以来,取消发布软件包的命令和策略可能已更改。

npm force-unpublish package-name 'reason message'

OR

npm --force unpublish "package-name"

对我不起作用。

答案 4 :(得分:2)

确保您的包裹符合 unpublish policy

删除一个版本

npm unpublish [<@scope>/]<pkg>@<version>

删除所有版本

npm unpublish [<@scope>/]<pkg> --force

https://docs.npmjs.com/cli/v6/commands/npm-unpublish

命令在终端成功执行后可能需要一段时间才能生效。

答案 5 :(得分:0)

从文档中:https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/periodicSync

npm deprecate <package> "<message>" to deprecate the entire package
npm deprecate <package>@<version> "<message>" to deprecate a specific version
If the entire package is deprecated, the package name will be dropped from our search results.

Once deprecated, if you would also like for the package to be removed from your user profile,
it can be transferred to our @npm account. This can be achieved by using the following from your command line:

npm owner add npm <package>
npm owner rm <your_username> <package>