为什么我无法将我的包发布到npmjs

时间:2017-09-20 16:26:28

标签: node.js npm publish

我已经使用npmjs.com创建了一个帐户,我也是在命令行(linux)中关注how-to-npm教程。我正处于发布测试模块的阶段。但我一直在收到错误:

You must sign up for private packages : @zentech/node

这些都是npm发布时的错误

npm ERR! publish Failed PUT 402
npm ERR! Linux 4.10.0-33-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "publish"
npm ERR! node v4.7.2
npm ERR! npm  v3.5.2
npm ERR! code E402

npm ERR! You must sign up for private packages : @zentech/node
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /home/george/node/npm-debug.log

我的package.json文件

{
  "name": "@zentech/node",
  "version": "1.0.1",
  "main": "index.js",
  "preferGlobal": true,
  "scripts": {
    "test": "node test.js"
  },
  "author": "",
  "license": "ISC",
  "description": "",
  "repository": "http://github.com/zentech/node"
}

有谁知道错误的原因?感谢

3 个答案:

答案 0 :(得分:9)

正如上面评论中所建议的那样,发布范围包即

@scope/my-package

在发布时使用--access标志

npm publish --access=public

需要注册私人套餐,除非您确实希望自己的套餐是私密的。

答案 1 :(得分:3)

很清楚:

  

您必须注册私人套餐:@ zentech / node

因此,您要么注册,要么将包的名称从@zentech/node更改为公共名称,例如zentech-node

答案 2 :(得分:0)

或者您可以在package.json上设置公共访问权限:

{
  ...
  "publishConfig": {"access": "public"}
  ...
}

而不是:

{
  ...
  "publishConfig": {"access": "restricted"}
  ...
}