亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

拾碎 —— Scoped Packages 的使用

標簽:
JavaScript

Scoped Packages 域级包

在 npm 的包管理系统中,有一种 scoped packages 机制,用于将一些 packages 以 @scope/package 的命名形式集中在一个命名空间下面,实现域级的包管理。
这就是我们看到的诸如 @angular/core@angular/router@r/horse等 package 的存在形态。
那么如何创建和管理这种域级包(其实是小生自己译的名儿,不喜勿怪,嘻嘻)呢。Steps steps go~

在 npm 项目中设置 scope

npm 会在用户注册账号的时候为其自动创建一个与用户名同名的 scope,之后用户也可以创建其他的 Org 作为 scope。
下面以用户独有的作用域为例:

$ mkdir scoped-packages-demo && cd scoped-packages-demo# 这里是小生的 npm 用户名$ npm init --scoped=shockw4ver

然后一顿回车搞定初始化(或者直接加 -y 参数~),当然你也可以精致的填好每一个信息,方便回顾~

操作 scope

初始化成功以后,package.json 文件中的 name 值为 @shockw4ver/scoped-packages-demo ,即这个包是位于 shockw4ver 命名空间下的 scoped-packages-demo

如果你想一直在这个 scope 下开发 npm 包,可以运行全局的 npm 配置命令进行设置:

$ npm config set scope shockw4ver

此时运行 npm config list,可以看到:

; cli configs
metrics-registry = "https://registry.npmjs.org/"scope = "@shockw4ver"user-agent = "npm/5.5.1 node/v8.9.3 darwin x64"; userconfig /Users/zhangyongchao/.npmrc
//registry.npm.taobao.org/:always-auth = false//registry.npm.taobao.org/:email = "[email protected]"http://registry.npm.taobao.org/:username = "shockw4ver"@asambojur:registry = "https://registry.npmjs.org/"registry = "https://registry.npmjs.org/"; node bin location = /usr/local/bin/node; cwd = /Users/zhangyongchao/Desktop/Samuel/demos
; HOME = /Users/zhangyongchao; "npm config ls -l" to show all defaults.

这是已经将 scope 写到了 .npmrc 中去,作为全局的 npm 配置。

发布 scoped package

scoped package 的发布与普通 package 的发布几乎没有区别,只是需要注意设置权限:

$ npm adduser
Username: shockw4ver
Password:
Email: (this IS public) [email protected]
Logged in as shockw4ver to scope @asambojur on https://registry.npmjs.org/.$ npm publish --access=public# 这里需将访问权限设置为 public,否则它默认是发布一个 private module,这是为一个有偿服务,需要成为“paid user”。

稍等片刻:

+ @shockw4ver/[email protected]

这便是发布成功了,嘿嘿~

合作开发

合作开发和普通包就更没区别~
owner 只需将合作者添加到 collaborator 即可~
当然了,之前应当先用版本管理工具做好同步,确保每次发布版本号不重复。

Private Modules

这里赘述一下 Private Modules 吧~
它是 npm 提供的私有模块服务,类似于 github 的 private repository。
当你的命名空间下的代码不想公开而又希望用 npm 进行管理的时候,可以有偿的使用这个服务。
官方描述:

When you sign up for private modules as an individual user, your scope is your username. If you create an npm Org, the orgname can be the scope. Orgs can be free or paid. Using a public Org is the only free way to use scopes in package names

也就是说,个人用户名或 Org 都可以成为你的 scope,而 Orgs 可以是付费或者免费的,其中免费 Org 是通过包名使用 scope 的唯一途径



作者:Asambojur
链接:https://www.jianshu.com/p/41d6fbb165bd


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消