【轉】使用CNPM搭建私有NPM


最近的Node項目中因為數據模型等問題,需要有一個對各個模塊進行統一的管理,如果把私有的模型publish到公共的npm不太合適,所以決定使用cnpm搭建一個私有的npm,同時也可以對項目常用的npm模塊做一個緩存,加快部署速度。

搭建的過程還是比較簡單,參考cnpm的Deploy很快搭建起來,給大家分享一下。

服務器環境:

  • Ubuntu Server 14.04
  • Node.js v0.12.0
  • MySQL 5.5

因為cnpm使用了--harmony參數,所以需要Node版本大於0.11.12,所以就直接上了最新的v0.12.0,沒有MySQL也沒關系,可以直接使用sqlite3。

Clone源碼並導入SQL

(MySQL用戶名:root 密碼:root,數據庫名:cnpm,項目和數據放在~/cnpm)


# clone from github $ git clone git://github.com/cnpm/cnpmjs.org.git $HOME/cnpm $ cd $HOME/cnpmjs # create mysql tables $ mysql -uroot -proot -e 'DROP DATABASE IF EXISTS cnpmjs;' $ mysql -uroot -proot mysql> use cnpmjs; mysql> source docs/db.sql 

創建並編輯config.js

$ vim config/config.js 
 module.exports = { debug: false, scopes: ['@superid'], enableCluster: true, // enable cluster mode mysqlServers: [ { host: 'localhost', port: 3306, user: 'root', password: 'root', } ], mysqlDatabase: 'cnpm', enablePrivate: true, // enable private mode admins: { admin: 'yourtion@gmail.com', }, syncModel: 'exist'// 'none', 'all', 'exist' }; 

安裝依賴並啟動運行

$ make install $ npm run start 

檢查運行

#open registry and web # registry $ curl http://localhost:7001 # web $ curl http://localhost:7002 

看到7001返回json數據,而7002返回HTML源代碼就是運行成功。

客戶端設置

首先安裝cnpm,並設置~/.cnpmrc

$ sudo npm install -g cnpm $ vim ~/.cnpmrc 

設置registry=http://127.0.0.1:7001(127.0.0.1改為你的服務器ip)

這樣就可以正常的publish私有模塊以及使用cnpm的緩存服務了。

有幾個需要注意的點:

  1. 因為需要創建私有倉庫並且保證有權限才能publish模塊,所以config.jsenablePrivate必須設為true;
  2. 為了保證私有的庫不與公開npm沖突,config.js中需要設置scopes數組為你的公司名或者項目代號,publish的模塊名為@superid/myModel

原文鏈接:https://blog.yourtion.com/cnpm-private-npm.html


免責聲明!

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



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