如何使用新的npm功能发布私有模块?

时间:2015-04-15 14:32:56

标签: npm package.json

输入结算信息并重新登录我的npm客户端后,我尝试发布一个新的私有模块。

我在"private": "true"上设置了package.json,并使用像@myusername/mymodule这样的范围内容来命名。然后我在npm publish上收到一条错误消息,说我必须删除"private": "true"才能发布我的模块!我做错了什么?

我应该删除私有属性并相信我给它一个范围名称的简单事实会默认将其设为私有吗?

信息:npm v2.7.6

2 个答案:

答案 0 :(得分:1)

  

我应该删除私有属性并相信我给它一个范围名称的简单事实会默认将其设为私有吗?

根据this page看起来你应该安全地做到这一点!

具体来说:

  

所有作用域包默认为限制访问。这可以确保您不会意外地公开。您可以在访问页面上更改此内容。

答案 1 :(得分:0)

"private": true与私有软件包完全不同。来自docs.npmjs.com

  

如果在package.json中设置"private": true,则npm将拒绝发布它。这是防止意外发布的方法...

我认为这不是您想要的。

npm@2.7.0开始,如果您是paid user,则可以将private packages发布到npm注册表。

  1. 注册一个付费帐户。
  2. 创建和初始化具有范围名称的软件包,例如"name": "@username/module-name"
  3. 发布您的包裹。默认情况下,npm假定作用域软件包旨在为私有软件包-这就是您想要的。但是,如果您希望作用域包是公开的,则可以使用--access=public选项进行发布。