1、关于组织范围和包
每个组织都被授予一个组织作用域,即与组织名称匹配的组织所拥有的包的唯一命名空间。例如,名为“wombat”的组织将具有范围@wombat
。
您可以使用作用域:
- 维护一个包的分支:@wombat/request
- 避免与流行名称的名称争议:@wombat/web
- 在同一命名空间中轻松查找包
作用域中的包必须遵循与非作用域包相同的命名准则。
1.1 管理无作用域的包
虽然在创建组织时默认情况下会授予一个范围,但您也可以使用组织来管理未限定范围的包或其他范围(如用户范围)下的包。
2、使用组织设置配置npm客户端
作为组织成员,您可以将npm客户端配置为:
- 使您在本地创建的单个包或所有新包使用您组织的作用域
- 使本地创建的单个包或所有新包具有默认的公共可见性
2.1 配置您的npm客户端以使用您组织的范围
如果您将经常发布具有组织范围的包,则可以将组织范围添加到全局.npmrc
配置文件中。
为所有新包设置组织范围
注意:使用以下步骤设置组织范围将仅设置新包的范围;对于现有的软件包,您需要更新
name
中的package.json
字段。
在命令行中,运行以下命令,将org-name替换为组织名称:
npm config set scope <org-name> --global
对于不希望使用组织范围发布的包,必须手动编辑包的package.json
以从name
字段中删除组织范围。
为单个包设置组织范围
1、在命令行中,切换到包的目录中:
cd /path/to/package
2、运行以下命令,将org-name替换为组织名称:
npm config set scope <org-name>
2.2 将默认包可见性更改为public
默认情况下,使用npm publish
发布一个有作用域的包将以私有方式发布该包。如果您是免费组织计划中的组织成员,或者是付费组织计划中的组织成员,但要将限定范围的包发布为公共包,则必须传递--access public
标志:
npm publish --access public
将单个包的包可见性设置为public
您可以设置单个包,使其将--access public
传递给您为该包发出的每个npm publish
命令。
1、在命令行中,切换到包的目录中:
cd /path/to/package
2、运行以下命令:
npm config set access public
将所有包的包可见性设置为public
您可以设置所有包将--access public
传递给您为该包发出的每个npm publish
命令。
警告:将包访问权限设置为全局
public
中的.npmrc
将影响您创建的所有包,包括您个人帐户范围内的包以及您组织范围内的包。
在命令行上,运行以下命令:
npm config set access public --global
3、创建和发布组织范围的包
作为组织成员,您可以在组织范围内创建和发布公共包和私有包。
3.1 创建组织范围的包
1、在命令行中,使用要创建的包的名称创建一个目录。
2、切换到新创建的包目录
3、要创建组织范围的包,请在命令行上运行:
npm init --scope=<your_org_name>
4、要验证包是否使用您的组织范围,请在文本编辑器中打开包的package.json
文件,并检查名称是否为@your_org_name/<pkg_name>
,也可以直接修改name字段,将your_org_name
替换为您的组织名称。
3.2 发布私有组织范围的包
默认情况下,npm publish
将发布一个范围内的包作为私有包。
默认情况下,任何作用域的包都发布为私有包。但是,如果您所在的组织没有“私有包”功能,则除非传递access标志,否则npm发布将失败。
1、在命令行中,切换到包的目录中。
2、运行 npm publish
如果开启双重认证,需要打开上图中,最下面的链接,需要进行双重认证之后返回一次性密码,然后粘贴密码复制到当前窗口即可,将发布成组织范围的私有包。
私有包会在npm网站上的包名下面显示private
。例如下图所示:
3.3 发布公共组织范围的包
要将组织范围内的包发布为公共包,请使用npm publish --access public
。
1、在命令行中,切换到包的目录。
2、运行 npm publish --access public
公共包会在npm网站上,有public 标识,如下图所示:
发布成功之后,会有邮件提示你,包已经发布成功,可以登录npm网站进行查看。