NPM:403 禁止 - PUT http://registry.npmjs.org/[package-name] - 禁止

Posted

技术标签:

【中文标题】NPM:403 禁止 - PUT http://registry.npmjs.org/[package-name] - 禁止【英文标题】:NPM: 403 forbidden - PUT http://registry.npmjs.org/[package-name] - Forbidden 【发布时间】:2020-08-18 20:20:01 【问题描述】:

我正在尝试创建npm vue component library。我一直在努力完成所有步骤,但停留在npm publish

请看下面的错误截图,我在尝试一个多小时后无法在谷歌上找到解决方案(错误信息不是那么准确,恕我直言,或者我无法捕捉到它)。

供参考package.json


  "name": "@satyam/vue-components",
  "version": "0.1.0",
  "main": "./dist/satyam.common.js",
  "files": [
    "dist"
  ],
  "scripts": 
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "build-library": "vue-cli-service build --target lib --name satyam ./src/components/index.js",
    "test:unit": "vue-cli-service test:unit",
    "lint": "vue-cli-service lint"
  ,
  "dependencies": 
    "core-js": "^3.6.4",
    "vue": "^2.6.11"
  ,
  "devDependencies": 
    "@vue/cli-plugin-babel": "~4.3.0",
    "@vue/cli-plugin-eslint": "~4.3.0",
    "@vue/cli-plugin-unit-jest": "~4.3.0",
    "@vue/cli-service": "~4.3.0",
    "@vue/eslint-config-standard": "^5.1.2",
    "@vue/test-utils": "1.0.0-beta.31",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-import": "^2.20.2",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-promise": "^4.2.1",
    "eslint-plugin-standard": "^4.0.0",
    "eslint-plugin-vue": "^6.2.2",
    "node-sass": "^4.12.0",
    "sass-loader": "^8.0.2",
    "vue-template-compiler": "^2.6.11"
  

运行后npm audit

任何帮助将不胜感激:)

【问题讨论】:

【参考方案1】:

更新:新用户需要先确认他们的帐户

所以经过相当多的研究和挖掘,我在这里找到了真正的问题。

它可能记录在某个很深的地方或用浅色字体,但我完全找不到它。

你的包名应该跟在你的npm username之后。

在我的package.json 名称属性中是@satyam/vue-components,它应该是@satyamninja/vue-components,就是这样。我成功发布了包。

【讨论】:

为未来的人们。 403 禁止可能是因为 @satyam 的 ORG 范围已被占用。为了清楚起见,npm username 不需要遵循您的包范围。【参考方案2】:

如果您是新用户,请先确认您的帐户!

【讨论】:

谢谢,这立即解决了我的问题。这么简单 很高兴,我能帮上忙! 谢谢...救了我一些心痛。为什么 npm 不告诉您确认您的帐户。您创建帐户的原因可能是为了尝试发布一些内容。【参考方案3】:

这篇文章帮助我克服了 403 错误,但是,在通过他们发送的电子邮件链接确认我的帐户并登录 NPM 后,我又尝试了一次,然后我收到以下错误:

402 需要付款 - PUT https://registry.npmjs.org/@jcarbajal79%2fsimplelib3 - 您必须注册私人包。

如果你有同样的问题是因为库被发布为私有,我检查了我的 package.json 并测试了以下内容:

没有属性:“私有”:“...”。 - 不工作 属性集“private”:“true” - 不起作用 属性集 "private":"false" - 不起作用

原来你必须从命令行公开发布它:

%> npm 发布 --access=public。 - 有效!。

【讨论】:

非常感谢,这也为我做了!【参考方案4】:

听起来您是新用户。您需要确认您的帐户。应该从 npm 站点收到电子邮件确认。

【讨论】:

【参考方案5】:

我曾经遇到过这个错误,经过一番搜索,我想出了如何解决它。您将获得403 forbidden error,因为可能在 NPM 上发布了另一个与您尝试发布的包同名的包,您必须将其更改为另一个名称。为此,您可以转到您的 package.json 并编辑包的名称。

【讨论】:

【参考方案6】:

如果上面提到的答案对任何人都不起作用,那么您需要检查您的电子邮件是否已通过 npm 帐户验证,如果未通过验证,请进行验证,您将能够毫无问题地发布。

【讨论】:

以上是关于NPM:403 禁止 - PUT http://registry.npmjs.org/[package-name] - 禁止的主要内容,如果未能解决你的问题,请参考以下文章

403 将模块发布到 npm 时禁止

npm publish报错403 Forbidden - PUT http://XXX - forbidden;http fetch PUT 403 http://XXX ; verbose stac

尝试使用 PUT 将 PDF 作为 blob 上传到 S3 存储桶时被禁止 403

(403) 放置时出现禁止错误,但重试时成功

CodeIgniter REST API 库 Ajax PUT 抛出 403 Forbidden

S3 REST API HEAD 请求上的 403 禁止错误