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

NPM: 403 forbidden - PUT http://registry.npmjs.org/[package-name] - Forbidden

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

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

供参考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

任何帮助将不胜感激:)

更新:新用户需要先确认账号

经过大量研究和挖掘,我发现了真正的问题所在。

它可能在非常深的地方或以浅字体记录在案,但我完全没有找到它。

你的包名应该跟在你的 npm username.

后面

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

我遇到过一次这个错误,经过一番搜索后我想出了解决方法。你得到 403 forbidden error 是因为 NPM 上可能发布了另一个包,其名称与你要发布的包同名,你必须将其更改为另一个名称。为此,您可以转到 package.json 并编辑包的名称。

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

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

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

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

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

否属性:“私人”:“...”。 - 不工作 属性 set "private":"true" - 不起作用 属性 设置“private”:“false” - 不起作用

原来你必须从命令行将它发布为 public:

%> npm publish --access=public。 - 作品!

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