【问题标题】:NPM Publish Registry - 403 Forbidden - "You don't have permission to publish "..."NPM Publish Registry - 403 Forbidden - “您无权发布“...”
【发布时间】:2019-03-01 18:44:20
【问题描述】:

我一直在尝试将我的包发布到 NPM 注册表。
我收到一条错误消息,不允许将我的包推送到注册表。

403 Forbidden - PUT https://registry.npmjs.org/qdb - You do not have permission to publish "qdb". Are you logged in as the correct user?

我想知道为什么。

【问题讨论】:

    标签: npm registry command-line-interface publish


    【解决方案1】:

    对于我来说,我刚刚创建 NPM 帐户时收到了这个 403 错误消息,但没有验证我帐户上的电子邮件地址。我找到了来自 NPM 的验证请求邮件,点击了链接,神奇地发布了我的第一个包。

    【讨论】:

    • 这个!谢谢!浪费了这么多时间。
    • 谢谢!在这种情况下,npm 服务器可以提供更好的错误消息:)
    • 谢谢,我没有检查我的邮件,现在它正在工作
    • 为了胜利!谢谢亨利
    【解决方案2】:

    看起来具有该名称的包已由其他人发布,因此您需要在 package.json 文件中使用不同的名称,然后再次使用 npm publish

    否则,您可以查看是否要发布已发布的相同版本。

    【讨论】:

    • 我尝试使用另一个名称,但仍然遇到同样的错误。如果可能,请您提供其他解决方案吗?
    • 这为我节省了很多时间
    • @Pavan,也许您发布的版本与已经发布的版本相同?
    • @Pavan 我也遇到了同样的问题。你找到解决方案了吗?
    • 他们应该说“已经存在”。顺便说一句,谢谢!
    【解决方案3】:

    发生的原因可能是包名称重复或您从未验证过您的电子邮件地址。

    【讨论】:

    • 在我的情况下,我无法验证我的电子邮件地址,哈哈,所以你是对的
    【解决方案4】:

    检查您发布的版本是否相同。我需要再次更新包的版本和npm publish。从我得到的 Forbidden 错误来看,它并不明显。

    【讨论】:

      【解决方案5】:

      检查您的电子邮件注册并确认验证
      最后重复发布你的包
      我希望会起作用?

      【讨论】:

        【解决方案6】:

        当组织名称已被占用时也会发生。使用以下网址:

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

        如果您收到“404 Not Found”错误,则表示该名称是免费的。否则不是。

        【讨论】:

          【解决方案7】:

          可能有很多原因

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

          【讨论】:

            【解决方案8】:

            我刚刚验证了我的电子邮件并且错误消失了。现在我可以发布我的包了。

            【讨论】:

              【解决方案9】:

              这样更改名称(也是版本) sample

                "name": "npm-helloworld-testwwwyy-xx",
                "version": "1.0.3"
              

              【讨论】:

                【解决方案10】:

                别忘了你需要登录。

                运行 npm login 能够发布包。

                【讨论】:

                  【解决方案11】:

                  对我来说,这是重复的包名。在package.json 中更改包名称就可以了。可能还有其他两个原因:

                  1. 试试npm whoami。如果您没有显示用户名,请尝试npm login

                  2. 如果您尝试重新发布,请确保您根据需要运行 npm version major/minor/patch

                  【讨论】:

                    【解决方案12】:

                    如果您是 Ubuntu 用户,即使验证了电子邮件,也会发生这种问题。

                    在npm登录前添加sudo cmd,

                    sudo npm login
                    

                    在发布模块时也使用 sudo

                    sudo npm publish
                    

                    【讨论】:

                      【解决方案13】:

                      在我的情况下,我的 npm config 中的电子邮件与我的 npm 登录设置的电子邮件不同。

                      所以基本上您通过npm config ls -l 显示的email 应该与您在npmjs.com 帐户中指定的电子邮件相匹配。

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2020-05-07
                        • 2023-03-08
                        • 1970-01-01
                        • 1970-01-01
                        • 2017-06-22
                        • 2021-12-27
                        相关资源
                        最近更新 更多