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