【转】使用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