主题
npm发布@开头的公开作用域包
npm上的包有一些是以@开头的, 比如说
@babel/core、@rollup/plugin-babel等等,这类型的包/前面的部分以@开头,实际上这是一种public scoped package,即公开的带有作用域的 npm 包,@xxx代表个组织
我们可以在 npm 上免费发布公开包供任何人使用,还可以以自己用户名或者组织为作用域进行前缀约束,统一管理属于同一作用域的 npm 包,具体如下:
免费的公开作用域包分为 以用户为作用域的
public user scoped package和 以组织为作用域的public organization scoped package两种,推荐使用后者,可以在一个账户中创建并管理多个组织作用域。
1. 发布以 用户 为 scope 的公开包
步骤1.package.json 中的name增加 @<your_user_name> 前缀
json
{
"name": "@fendou/test" // fendou为npm用户名 test为包名
}步骤2.发布包时增加 --access public 参数
bash
npm publish --access public2. 发布以 组织 为 scope 的公开包
步骤1.在 npm 账户中创建组织
有两种方式可以创建组织:
新建组织或者将账户转为组织
方式1. 新建组织 :类型为 Unlimited public packages Free方式2. 将账户转为组织: 按步骤修改用户名并选择组织类型为 Unlimited public packages Free

特别注意,在将账户转为组织时,需要重命名账户,新账户名必须与组织不同,即保持账户/组织在 npm 系统中的唯一性
步骤2.package.json 中的包名增加 @<your_org_name> 前缀
例如 组织 mrli-utils下创建 async-pool 包
json
{
"name": "@mrli-utils/asyncpool",
}步骤3.发布包时增加 --access public 参数
bash
npm publish --access public最终发布效果 
