我已经使用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"
}
有谁知道错误的原因?感谢
答案 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"}
...
}