npm-scope

npm-scope

描述

所有的 npm packages 都有一個(gè)名字。一些 packages 名字也會(huì)有一個(gè) scope ,scope 命名遵循普通 package 名字(URL-安全字符,不以 . 或 _ 開頭),scope 中的 packages 使用時(shí)要以 @ 符開頭,后面跟 / ,例如:

@somescope/somepackagename

npm-scope 是一種將一些互相有關(guān)聯(lián)的包組合在一起的方式,同時(shí) npm 處理這些 packages 的方式也不同。

每個(gè) npm 用戶/組織 都有自己的范圍,只有你自己可以在你的 scope 中添加 packages ,這意味著你不用擔(dān)心自己 packages 的名字跟別人沖突。因此,npm-scope 是一些組織發(fā)布官方 packages 最好的方式。

npm-scope 從 npm@2 開始支持。Unscoped packages 和 scoped packages 可以互相依賴。

安裝 scoped packages

scoped packages 會(huì)被安裝到二級(jí)文件夾中,例如,某個(gè) Unscoped packages 被安裝至 node_modules/packagename ,scoped packages 則會(huì)被安裝至 node_modules/@myorg/packagename 。@myorg 是個(gè)文件夾,可以包含任意數(shù)量的 scoped packages 。

一個(gè) scoped package 通過(guò)下面的命令安裝:

npm install @myorg/mypackage

或者在 package.json 中:

"dependencies": {
  "@myorg/mypackage": "^1.3.0"
}

注意:如果在安裝 scoped packages 過(guò)程中省略 @ 符號(hào),npm 將嘗試從 GitHub 中安裝。

引入 scoped packages

由于 scoped packages 被安裝在一個(gè) scope 文件夾中,所以你在代碼中引用它時(shí),需要包含 scope 的名字,例如:

require('@myorg/mypackage')

發(fā)布 scoped packages

從 npm@2(2015-04-19) 開始,scoped packages 就可以被發(fā)布到 任何 registry 中。

你也可以將 scope 和某個(gè) registry 進(jìn)行關(guān)聯(lián),見下文。

將 public scoped packages 發(fā)布至 npm registry

npm publish @myorg/mypackage --access public

將 private scoped packages 發(fā)布至 npm registry

要將 private scoped packages 發(fā)布到 npm registry ,你必須先擁有一個(gè) npm Private Modules (私有模塊)的賬戶。

然后你可以 用 npm publish 或者 npm publish --access restricted 發(fā)布 scoped packages ,發(fā)布后的 scoped package 將出現(xiàn)在 npm registry 中,但是時(shí)受限的。你可以在 npmjs.com website 或者 使用 npm access 改變權(quán)限。

將一個(gè) scope 和 一個(gè) registry 關(guān)聯(lián)

scope 可以和 單獨(dú)的 registry 相關(guān)聯(lián)。這允許你無(wú)縫地使用一個(gè)混合私有 registry 和 npm registry 的 package 。

你可以在登錄時(shí)將 scope 和 一個(gè) registry 關(guān)聯(lián),例如:

npm login --registry=http://reg.example.com --scope=@myco

一個(gè) registry 可以有多個(gè) scope ,但是一個(gè) scope 只能關(guān)聯(lián)一個(gè) registry 。

你也可以使用 npm config 將一個(gè) scope 和 一個(gè) registry 進(jìn)行關(guān)聯(lián):

npm config set @myco:registry http://reg.example.com

一旦 scope 與 registry 相關(guān)聯(lián),scope下的 packages 在這個(gè) registry 中請(qǐng)求請(qǐng)求下載。同時(shí)也會(huì)被發(fā)布到這個(gè) registry 中。

原文地址

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • NPM官方文檔寫的十分良心,此篇我做一些比較常用功能的積累,有些地方是翻譯,有些地方省略可以去官文看。 NPM是什...
    宋樂怡閱讀 2,483評(píng)論 0 2
  • NPM是什么? npm是世界上最大的軟件注冊(cè)表, npm由3個(gè)獨(dú)立的部分組成: 網(wǎng)站:開發(fā)者查找包,設(shè)置參數(shù)以及...
    Xyaleo閱讀 659評(píng)論 0 1
  • 描述 npm從以下來(lái)源獲取配置值,按優(yōu)先級(jí)排序: 命令行標(biāo)記 在命令行上放置--foo bar設(shè)置foo配置參數(shù)為...
    竹天亮閱讀 44,494評(píng)論 0 8
  • 我覺得所有程序員都在努力的學(xué)習(xí)閱讀英語(yǔ)吧,畢竟英語(yǔ)閱讀沒問(wèn)題,我們才能更好的閱讀文檔,為了給大家更快的學(xué)習(xí)效率,所...
    王月_92f2閱讀 1,563評(píng)論 0 0
  • 我們通常通過(guò) npm 來(lái)安裝和使用開源的模塊。但是,通常我們有些私有的模塊,不想通過(guò)npm發(fā)布,但是又想在一些項(xiàng)目...
    wavesnow閱讀 3,716評(píng)論 1 5

友情鏈接更多精彩內(nèi)容