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] - 禁止的主要内容,如果未能解决你的问题,请参考以下文章
npm publish报错403 Forbidden - PUT http://XXX - forbidden;http fetch PUT 403 http://XXX ; verbose stac
尝试使用 PUT 将 PDF 作为 blob 上传到 S3 存储桶时被禁止 403