代码之家  ›  专栏  ›  技术社区  ›  mb21

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

npm
  •  52
  • mb21  · 技术社区  · 6 年前

    我想向npm发布一个普通的公共包。当我这样做的时候 npm publish

    npm ERR! publish Failed PUT 400
    npm ERR! code E400
    npm ERR! unscoped packages cannot be private : my-package
    
    2 回复  |  直到 6 年前
        1
  •  76
  •   mb21    6 年前

    看来(截至2018年11月),您必须:

    npm publish --access public
    

    这会告诉npm注册表,您希望每个人都可以下载您的包。这过去是默认值,从 documentation 仍然应该是,所以这可能只是npm中的一个bug。还有一些,写得不太好 documentation 关于 scoped/unscoped and public/private packages

    而不是使用 --access ,您也可以将该设置添加到 package.json 作为临时解决办法。

        2
  •  8
  •   smnbbrv    6 年前

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

    提议的

    npm publish --access public
    

    semantic-release . 正确的解决方案是使用同样的方法 access 参数,但在 package.json publishConfig

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

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

    npm publish