cnpm是企業內部搭建npm鏡像和私有npm倉庫的開源方案。它同時解決了現有npm架構的一些問題。html
主要有以下理由:node
部署cnpm只需5分鐘。mysql
獲取代碼git
git clone git://github.com/fengmk2/cnpmjs.org.git $HOME/cnpmjs.org cd $HOME/cnpmjs.org
建立MySQL表github
; mysql -u yourname -p mysql> use cnpmjs; mysql> source docs/db.sql
而後編寫配置文件config/config.js
:web
module.exports = { debug: false, enableCluster: true, // enable cluster mode mysqlServers: [ { host: 'localhost', port: 3306, user: 'cnpmjs', password: 'cnpmjs123', } ], mysqlDatabase: 'cnpmjstest', redis: { host: 'localhost', port: 6379, }, nfs: null, //use your own CND here enablePrivate: true, // enable private mode, only admin can publish, other use just can sync package from source npm admins: { admin: 'admin@cnpmjs.org', }, syncModel: 'exist' };
安裝依賴redis
make install
啓動sql
; npm run start Starting cnpmjs.org ... Start nodejs success. PID=27175
好了,部署完成!數據庫
服務跑起來以後,企業員工須要在本身的電腦上配置下客戶端。npm
首先安裝cnpm客戶端:
npm install -g cnpm
在本身的腳本的啓動文件(例如.zshrc
或.bashrc
)中添加別名:
echo "#lnpm alias\nalias lnpm='cnpm --registry=http://localhost:7001\ --registryweb=http://localhost:7002\ --cache=$HOME/.npm/.cache/lnpm\ --userconfig=$HOME/.lnpmrc'" >> $HOME/.zshrc && source $HOME/.zshrc
注意用本身的倉庫信息替換上面命令的相關部分。
以後就能夠用lnpm
命令訪問企業的內部NPM了,各類接口和NPM同樣。
注意,目前cnpm的權限控制比較簡單,只有admin
用戶有權publish
NPM模塊。若是你的企業須要靈活的權限控制,須要自行開發。
本文由SegmentFault根據 NodeParty 2013 上 @dead-horse 的分享整理