npm私有倉庫(基於nexus2搭建)使用手冊


1、背景

  一方面,公司出於自身隱私保護需要,不想把自己的代碼開源到包管理區,但是又急需一套完整包管工具,來管理越來越多的組件、模塊和項目;另一方面,前端對於已有的開源包需要根據項目需要做部分修改和優化,根據公司戰技部要求,包的代碼量過大的情況下會導致jenkins編譯緩慢,並且該部分代碼不應計入個人開發代碼量。當前常用的前端包管理器是npm的公共倉庫,鑒於目前部門使用nexus2管理后端jar包,考慮使用nexus2搭建npm私有倉庫。

 

2、nexus2私有倉庫搭建搭建過程略,可參考https://blog.csdn.net/xixiaoxie2/article/details/72492085

倉庫的用戶名、密碼和郵箱為:deployment/xxx123/it@xxx.com

Nexus2搭建3種類型的倉庫和說明,如下:

  • Proxying npm Registries代理倉庫

  倉庫地址:http://10.xxx.7.xxx:8081/nexus/content/repositories/npm-proxy/

  說明:

  該倉庫可以遠程訪問公共倉庫,當前設置的register為https://registry.npm.taobao.org

  服務器會緩存下載過的包

  只能下載公共倉庫的包

  • Private npm Registries 托管倉庫

  倉庫地址:http://10.xxx.7.xxx:8081/nexus/content/repositories/npm-private/

  說明:

  該倉庫即為私有倉庫,可以發布自己的代碼包和下載私有倉庫已發布的代碼包

  • Grouping npm Registries 存儲庫組

  倉庫地址:http://10.xxx.7.xxx:8081/nexus/content/repositories/npm-it/

  說明:

  將前兩個單獨的倉庫合並起來

  既可以下載公共倉庫的包,也可以下載私有倉庫的包

 

3、配置.npmrc文件(用戶信息)

查看npm配置

npm config ls

 

register未配置,默認為http://registry.npmjs.org

查看HOME路徑下有沒有.npmrc配置文件,若沒有,可手動創建,右鍵新建文本文檔,輸入文件名:.npmrc.

 

下面開始配置npm用戶信息,配置方式有兩種:

A.編輯.npmrc文件

使用文本編輯器如notepad++,打開.npmrc文件,添加npm配置項:

email=it@xxx.com always-auth=true _auth="ZGxxxxxxxxxxxxxxxxxxxMw=="

email指登錄用戶的郵箱

always-auth指是否進行身份驗證

_auth為用戶名:密碼的base64編碼,即deployment:xxx123的base64編碼,當用戶信息修改時,需要修改以上配置項

B.通過npm config set命令配置

npm config set email “it@xxx.com” npm config set always-auth true npm config set _auth "ZGxxxxxxxxxxxxxxxxxxxxMw=="

 

4、下載公共包和私有包

首先,修改npm的register注冊表,可臨時修改也可永久修改

  • 臨時修改的方式

從存儲倉庫即npm-it中下載包,執行命令如下

npm -loglevel info install angular -registry=http://10.xxx.7.xxx:8081/nexus/content/repositories/npm-it/

-loglevel info選項可查看下載地址,正常下載可以不添加

-registry即臨時設置注冊表地址

 

  • 永久修改的方式,即修改npm配置

可修改.npmrc文件,增加register配置:

registry=http://10.xxx.7.xxx:8081/nexus/content/repositories/npm-it/

或者執行

npm confige set register=”http://10.xxx.7.xxx:8081/nexus/content/repositories/npm-it/”

修改完成后,npm config ls查看下registry

 

執行

npm -loglevel info install jquery

 

備注:

從npm-it庫中可下載公共倉庫的包和私有倉庫的包

從npm-proxy庫中可下載公共倉庫的包

從npm-private庫中可下載私有倉庫的包

 

5、發布私有包

發布私有包時,npm的registry需修改為

http://10.xxx.7.xxx:8081/nexus/content/repositories/npm-private/

可按照兩種方式:

永久修改:修改npm的registry配置

臨時修改:在npm publish添加registry選項或者在需要發布包的package.json文件中配置,具體操作見下文。

要發布的模塊,必須保證在根目錄下有package.json文件,沒有話,會出現下面圖上的錯誤。

 

package.json中可以只是簡單的name和version的配置,如下:

{ "name": "test-npm-publish", "version": "1.0.2", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }

package.json文件配置ok,就可以publish了

  • 永久修改registry方式執行npm publish(具體操作同4中的永久修改方式,過程略)

 

  • 臨時修改的方式

第一種 npm publish命令添加-registry選項

 

第二種 package.json文件中添加發布路徑配置,直接執行npm publish

  "publishConfig" : { "registry" : "http://10.xxx.7.xxx:8081/nexus/content/repositories/npm-private/" },

 

6、撤銷已發布的私有包

  一方面,nexus2版本不支持unpublish包,另一方面,npm官網並不建議unpublish包。所以除非特殊情況,不建議對已上傳的包進行撤銷,可以版本迭代。包要刪除,可直接在nexus上手動刪除。

 

備注:其實npm私有倉庫的下載發布撤銷包的操作和npm官方公共倉庫的下載發布撤銷包操作類似,主要區別即npm配置的register切換和用戶信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM