npm 发布提供"unscoped packages cannot be private"



我想向npm发布一个普通的公共包。当我做npm publish时,我得到:

npm ERR! publish Failed PUT 400
npm ERR! code E400
npm ERR! unscoped packages cannot be private : my-package

根据NPM文档,您现在必须执行以下操作:

npm publish --access public

这告诉npm注册表,您希望您的包可以被所有人下载。

您也可以将设置添加到package.json中,而不是使用--access,如@smnbrv下面的回答所示。但如果我是对的,这只是一个错误,您可能只想使用--access作为临时解决方法。

有了@mb21的所有学分和他的解决方案,他的答案又增加了一小部分。

拟议

npm publish --access public

工作非常完美。然而,并不总是能够使其在CI环境中工作,例如,当您使用语义发布时。正确的解决方案是在package.jsonpublishConfig中使用相同的access参数(顺便说一句,这也使将来更容易手动发布(:

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

现在你可以在CI工具中使用它,或者简单地使用

npm publish

我花了一些时间来弄清楚这一点,所以我希望它能为未来的读者节省一些时间。

如果您希望它是私有的,那么您必须在包中添加一个作用域。

您将使用@my-private-libraries/my-package而不是my-package

相关内容

最新更新