NPM发布注册表 - 403禁止访问 - “您没有权限发布“…””。

46

我一直在尝试将我的软件包发布到NPM Registry。

但是我收到了一个错误提示,说我不允许将我的软件包推送到注册表中。

403 Forbidden - PUT https://registry.npmjs.org/qdb - 您没有权限发布“qdb”。请确认您已使用正确的用户登录?

我想知道为什么会这样。

19个回答

87

看起来有人已经发布了同名的包,所以你需要在package.json文件中使用不同的名称,然后再次使用npm publish命令。

否则,你可以查看是否尝试发布与已发布的相同版本。


3
我尝试了另一个名字,但仍然遇到相同的错误。如果可能的话,你能提供另一种解决方案吗? - Pavan
1
这让我节省了很多时间。 - davyCode
1
他们应该说“已经存在”。顺便说一下,谢谢! - Spring
哇,非常感谢。我已经苦苦挣扎了很长时间。这对我有用。 - Samiksha Jagtap
这很有帮助,因为如果在运行 npm publish 之前不更新package.json中的版本号,如果该版本已经发布,你将收到一个403错误。 - Mike T
显示剩余4条评论

77

我曾经在刚创建NPM账户时遇到这个403错误提示,因为我没有验证我的电子邮件地址。后来我从NPM收到了验证请求的电子邮件,点击链接后,奇迹般地成功发布了我的第一个软件包。


5
这个!谢谢!在那上面浪费了太多时间。 - Adrian Danlos
6
谢谢!在这种情况下,npm服务器可以提供更好的错误信息 :) - Thorkil Værge
谢谢,我没有查看我的邮件,现在它正在工作。 - VishnuKumar ps
为胜利而战!谢谢Henry - topherPedersen

8
发生这个问题可能是因为软件包名称重复或者您从未验证过您的电子邮件地址。

在我的情况下,我从来没有成功验证过我的电子邮件地址,哈哈,所以你是对的。 - Rolando Niubó

5

检查您是否发布了相同的版本。我需要更新包的版本并再次运行npm publish。从我得到的禁止错误来看,这并不明显。


5

请注意,您需要先登录。

运行npm login以便能够发布包。


4

请检查您的电子邮件注册并确认验证
最后,请再次发布您的软件包
希望这次它能够工作


3

当找不到机构名称时,也会发生这种情况。使用以下网址:

https://www.npmjs.com/org/ORG_NAME_HERE

如果收到“404未找到”错误消息,则意味着该名称可用。否则不可用。


3

出现这种情况可能有很多原因:

  1. 电子邮件未经过验证,首先使用npmjs.com验证您的电子邮件。
  2. 其他人正在使用相同的软件包名称,它需要是唯一的。所以选择一个独特的名称。 您可以在package.json文件下更改名称。
  3. 如果您正在重新发布带有您所做更改的相同软件包,则需要更改版本,例如- 1.0.0到1.0.1。您也可以在package.json文件中更改版本名称。

3

对我来说,有一个同名的项目。我只需要更改名称并进行npm发布,然后它就可以正常工作。


你的回答可以通过添加支持信息来改进。请[编辑]以添加更多细节,如引用或文档,以便他人可以确认你的回答是否正确。您可以在帮助中心中找到有关编写良好答案的更多信息。 - Community

2

这个错误的另一个原因是您的软件包名称与现有已发布的软件包冲突。NPM认为您要发布的就是那个软件包,显然,您没有权限进行该操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接