W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
所有 npm 包都有一個(gè)名稱。一些包名也有作用域。范圍遵循包名稱的通常規(guī)則(URL 安全字符,沒(méi)有前導(dǎo)點(diǎn)或下劃線)。在包名中使用時(shí),范圍以@
符號(hào)開頭,后跟斜杠,例如
@somescope/somepackagename
作用域是將相關(guān)包組合在一起的一種方式,也會(huì)影響 npm 處理包的方式。
每個(gè) npm 用戶/組織都有自己的范圍,只有您可以在您的范圍內(nèi)添加包。這意味著您不必?fù)?dān)心有人在您之前使用您的包裹名稱。因此,這也是向組織發(fā)出官方軟件包信號(hào)的好方法。
作用域包可以npm@2
從主 npm 注冊(cè)表開始發(fā)布和安裝,并受主 npm 注冊(cè)表的支持。無(wú)作用域的包可以依賴作用域的包,反之亦然。npm 客戶端向后兼容無(wú)作用域的注冊(cè)表,因此它可用于同時(shí)處理作用域和無(wú)作用域的注冊(cè)表。
作用域包安裝到常規(guī)安裝文件夾的子文件夾中,例如,如果您的其他軟件包安裝在node_modules/packagename
,作用域模塊將安裝在node_modules/@myorg/packagename
.?范圍文件夾 (?@myorg
) 只是以@
符號(hào)開頭的范圍名稱,可以包含任意數(shù)量的范圍包。
作用域包是通過(guò)按名稱引用它來(lái)安裝的,前面是一個(gè)?@
符號(hào),在npm install
:
npm install @myorg/mypackage
或在package.json
:
“dependence” :{
“@myorg/mypackage” :“^1.3.0”
}
請(qǐng)注意,如果@
省略符號(hào),無(wú)論哪種情況,npm 都會(huì)嘗試從 GitHub 安裝;見npm install
。
因?yàn)樽饔糜虬惭b在作用域文件夾中,所以在代碼中需要它們時(shí)必須包含作用域的名稱,例如
需要('@myorg/mypackage' )
Node 處理范圍文件夾的方式?jīng)]有什么特別之處。這僅需要mypackage
名為@myorg
.
范圍包可以從 CLI 發(fā)布npm@2
,也可以發(fā)布到任何支持它們的注冊(cè)表,包括主 npm 注冊(cè)表。
(截至 2015 年 4 月 19 日,使用 npm 2.0 或更高版本,主 npm 注冊(cè)表?確實(shí)支持作用域包。)
如果您愿意,您可以將范圍與注冊(cè)表相關(guān)聯(lián);見下文。
將公共范圍的包發(fā)布到主 npm 注冊(cè)表
要發(fā)布公共范圍的包,您必須指定--access public
初始發(fā)布。這將發(fā)布包并設(shè)置訪問(wèn)權(quán)限,public
就像您npm access public
在發(fā)布后運(yùn)行一樣。
將私有范圍的包發(fā)布到 npm 注冊(cè)表
要將私有范圍的包發(fā)布到 npm 注冊(cè)表,您必須擁有一個(gè)npm 私有模塊?帳戶。
然后,您可以使用npm publish
或發(fā)布模塊npm publish --access restricted
,它會(huì)出現(xiàn)在 npm 注冊(cè)表中,訪問(wèn)受限。然后,您可以根據(jù)需要npm access
通過(guò) npmjs.com 網(wǎng)站或在 npmjs.com 網(wǎng)站上更改訪問(wèn)權(quán)限。
范圍可以與單獨(dú)的注冊(cè)表相關(guān)聯(lián)。這允許您無(wú)縫地使用來(lái)自主 npm 注冊(cè)表和一個(gè)或多個(gè)私有注冊(cè)表(例如 npm Enterprise)的包的組合。 您可以在登錄時(shí)將范圍與注冊(cè)表關(guān)聯(lián),例如
npm登錄 --registry = http://reg.example.com --scope = @myco
作用域與注冊(cè)中心是多對(duì)一的關(guān)系:一個(gè)注冊(cè)中心可以承載多個(gè)作用域,但一個(gè)作用域只能指向一個(gè)注冊(cè)中心。
您還可以使用npm config
以下方法將范圍與注冊(cè)表相關(guān)聯(lián):
npm配置集@myco:registry http://reg.example.com
一旦作用域與注冊(cè)表相關(guān)聯(lián),任何npm install
具有該作用域的包都會(huì)改為從該注冊(cè)表請(qǐng)求包。任何?npm publish
包含范圍的包名稱都將發(fā)布到該注冊(cè)表。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: