npm publish给出了;非范围包不能是私有的”;

npm publish给出了;非范围包不能是私有的”;,npm,Npm,我想向npm发布一个普通的公共包。当我发布npm时,我得到: npm ERR! publish Failed PUT 400 npm ERR! code E400 npm ERR! unscoped packages cannot be private : my-package 看来(截至2018年11月),您必须: npm publish --access public 这会告诉npm注册表,您希望每个人都可以下载您的包。这曾经是默认的,从现在开始应该是,所以这可能只是npm中的一个bug

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

npm ERR! publish Failed PUT 400
npm ERR! code E400
npm ERR! unscoped packages cannot be private : my-package
看来(截至2018年11月),您必须:

npm publish --access public
这会告诉npm注册表,您希望每个人都可以下载您的包。这曾经是默认的,从现在开始应该是,所以这可能只是npm中的一个bug。还有一些,写得不太好


除了使用
--access
,您还可以将设置添加到
包.json
,如下面@smnbbrv的回答所示。但是,如果我是对的,这只是一个bug,你可能只想使用
--access
作为临时解决办法。

在@mb21的所有功劳和他的解决方案中,他的答案有一个小小的补充

提议的

npm publish --access public
工作完美。但是,并非总是能够使其在CI环境中工作,例如在使用时。正确的解决方案是使用相同的
access
参数,但在您的
package.json
s
publishConfig
(顺便说一句,这也使得以后手动发布更加容易):

现在,您可以在CI工具中使用它,也可以简单地使用它

npm publish

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

是的!谢谢npm团队。最后,不要再有冷汗了,我会意外地在错误的终端结束…感谢npm团队的明确信息,需要单独的SO问题/答案。难以置信,这是一个如此惊人的改变,错误信息是随机文本…@smnbbrv-ahahahah,你肯定是对的。。。似乎他们看不到它的到来,这样一个重大的突破性的变化保证了在错误消息中友好的提醒。。这些npm开发者到底怎么了?哈哈,欢呼!这是一条随机错误消息,甚至是随机分辨率。真棒@mb21;)
npm publish