403 Forbidden
按照文档中的步骤,注册登录后,准备好了库,然后执行npm publish
,报了下面的错误:
Error: 403 Forbidden - PUT registry.npmjs.org/xx - You do not have permission to publish "xx". Are you logged in as the correct user?
查询资料后,发现于来世因为公开的库里面,已经有了同名的库。由于是免费的账号,所以想在npm上发包,要么换个名称,要么花钱创建私有包。还有一种方式就是在内网搭建自己的npm服务
Error:402 Payment Required
换了个名字,想起了自己建过的库,就模仿加了个@前缀的包,再次发布的时候,报了下面的错误:
Error: 402 Payment Required - PUT registry.npmjs.org/@xx/xx - You must sign up for private packages
查看文档,发现@npm/package-name
这种形式的包名,是有作用域的包名形式,执行npm publish
的时候默认是发布私有的包。因此,第一种方式是花钱买私有包的服务,另外一种方式就是指定参数,表示公开:
npm publish --access public
需要注意的是这种形式的包名跟npm账户有对应的关系,不能随便填写。
npm init --scope=@my-org
这种形式表示是一个组织,my-org
对应是npm中的组织名
npm init --scope=@my-username
这种形式表示个人,my-username对应是npm中的用户名