內網環境搭建私有npm服務(修改)

嘗試自己搭建服務太過複雜,而且要將整個npm庫鏡像下來是不可能的,於是想到使用緩存的辦法。

所有的包全局安裝,設置不從服務器獲取包,這樣 npm install 也可以正常使用。

  1. 在外網機器上新建項目引用內網中需要包
  2. npm install -g
  3. 輸入命令npm config get cache查看緩存目錄位置
  4. C:\Users\hongpu\AppData\Roaming\npm-cache 拷貝npm緩存,npm-cache文件打包,通過光盤複製替換內網機器npm-cache文件夾。
  5. 內網機器上執行:npm install --cache ./npm-cache --optional --cache-min 99999999999 --shrinkwrap false jquery   或者  npm install --cache ./npm-cache --optional --cache-min 99999999999 --shrinkwrap false
npm包全局安裝緩存地址
npm包全局安裝緩存地址

外網創建一個簡化的項目,包全局安裝,所有包都安裝完後,打包npm-cache文件夾,複製到內網機器上。

npm-cache文件夾中文件已經打包爲tgz文件,所以不用考慮windows長路徑問題。

參考:node_modules 在沒有網絡的情況下如何離線安裝

前言


鑑於最近的幾起數據泄露事件,公司決定所有開發工作必須在內網中進行,隔絕外網,避免代碼和數據泄露。但前端開發不可避免引用大量的JS庫,於是嘗試下載所有的依賴包,拷入內網中,再進行開發。

網上查到有:npm、cnpm、verdaccio、kappa和sinopia等多種搭建方法。

  1. 使用CNPM搭建企業內部私有的NPM庫
  2. windows 環境部署私有 npm 源
  3. 使用Sinopia搭建私有的npm倉庫
  4. 用sinopia在linux系統中搭建npm私有庫

技術背景


NPM:(node package manager),通常稱爲node包管理器,主要功能就是管理node包,包括:安裝、卸載、更新、查看、搜索、發佈等。NPM是基於couchdb一個數據庫,詳細記錄了每個包的信息(作者、版本、依賴、授權信息等)。

cnpm:是企業內部搭建npm鏡像和私有npm倉庫的開源方案。它同時解決了現有npm架構的一些問題。

Kappa是由eBay創建的一個基於npm-delegate和hapi的npm代理,通過kappa我們不需要複製整個公共的倉庫數據就能創建自己的私有倉庫。

Sinopia: 是一個零配置的私有的帶緩存功能的npm包管理工具,作者是是rlidwka,使用sinopia,你不用安裝CouchDB或MYSQL之類的數據庫,Sinopia有自己數據庫,如果要下載的包不存在,它將自動去你配置的npm地址上去下載,而且硬盤中只緩存你下載過的包,以節省空間。

Verdaccio:由於sinopia的2015年10月後停止對sinopia的維護和升級,所以出來了一個sinopia的fork,名字叫做Verdaccio,然後由Verdaccio繼續對sinopia進行更新和維護,具體如何使用Verdaccio來構建私有npm服務器,請見Verdaccio的github介紹

Apache CouchDB:是一個開源數據庫,專注於易用性和成爲"完全擁抱web的數據庫"。它是一個使用JSON作爲存儲格式,JavaScript作爲查詢語言,MapReduce和HTTP作爲API的NoSQL數據庫。其中一個顯著的功能就是多主複製。CouchDB的第一個版本發佈在2005年,在2008年成爲了Apache的項目。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章