使用CNPM搭建企业内部私有的NPM库

来源:互联网 发布:冯大辉丁香园离职知乎 编辑:程序博客网 时间:2024/05/22 10:35

转载来源:一路博客(http://www.16boke.com)


1、cnpm概述

cnpm是企业内部搭建npm镜像和私有npm仓库的开源方案。它同时解决了现有npm架构的一些问题。

2、为什么企业需要私有NPM

确保npm服务快速、稳定:对于企业来说,上线生产系统的时候,需要花半小时甚至更久等待npm模块依赖安装完毕,是不可接受的。部署镜像后,可以确保高速、稳定的npm服务。

发布私有模块:官方的npm上的模块全部是开源的。一些与企业业务逻辑相关的模块可能不适合开源。这部分私有的模块放在私有NPM仓库中,使用起来各种方便。

控制npm模块质量和安全:npm上的模块质量参差不齐,搭建私有仓库,可以更严格地控制模块的质量和安全,只有经过审核的模块才允许被加入私有仓库。

3、cnpm的特点

压缩包等文件从数据库中分离,放在CDN上,减轻了数据库的压力,提高了访问速度。

使用MySQL替换了CouchDB,更容易部署。同时由于大部分开发者更熟悉MySQL,因此架设起来更方便。

CDN和MySQL都可以方便地扩展。

73830a323777507e5452fcea6e104cba_articlex.png

4、部署cnpm

  • 获取代码

git clone git://github.com/fengmk2/cnpmjs.org.git
  • 创建mysql库

create database cnpmjs;

use cnpmjs;

source docs/db.sql【db.sql位于cnpmjs.org/docs/db.sql】

  • 修改配置

vim /cnpmjs.org/config/index.js

QQ截图20160602133647.png

cnpm提供两个端口:7001和7002,其中7001用于NPM的注册服务,7002用于Web访问。

bindingHost为安装cnpm的服务器ip地址,也就是在浏览器中只能通过访问http://192.168.48.57来访问cnpm以及获取npm的注册服务。

QQ截图20160602133952.png

按照之前创建的数据库来进行配置

4、安装依赖

进入/cnpmjs.org,执行make install

如果安装过程中报错,可能需要升级node和npm,目前我安装成功的环境为:

[root@centos6 config]# node -v

v4.3.0

[root@centos6 config]# npm -v

2.14.12

大家可以升级到我这个版本来安装

5、启动服务

node --harmony_generators dispatch.js

或者

nohup node --harmony_generators dispatch.js &

或者

node dispatch.js

或者

nohup node dispatch.js &

如果启动过程中报这个错:

[root@centos6 config]# node --harmony_generators dispatch.js

node: bad option: --harmony_generators

说明node版本不支持--harmony_generators选项,可以换成“node dispatch.js”或者“nohup node dispatch.js &”来启动。

其中nohup为在后台启动。

6、测试是否启动成功

在浏览器中输入:http://192.168.48.57:7002/,如果出现:

QQ截图20160602134656.png

则说明安装启动成功。

0 0