cnpm配置

点击在我的博客 xuxusheng.com 中查看,有更好的排版哦~

cnpm

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

github上地址在这里:
https://github.com/cnpm/cnpmjs.org

详细的配置文件配置项说明在这里:
https://xcoder.in/2016/07/09/lets-cnpm-base-deploy/

一、为什么企业需要私有npm

主要有如下理由:

  • 确保npm服务快速、稳定:对于企业来说,上线生产系统的时候,需要花半小时甚至更久等待npm模块依赖安装完毕,是不可接受的。部署镜像后,可以确保高速、稳定的npm服务。
  • 发布私有模块:官方的npm上的模块全部是开源的。一些与企业业务逻辑相关的模块可能不适合开源。这部分私有的模块放在私有npm仓库中,使用起来各种方便。
  • 控制npm模块质量和安全:npm上的模块质量参差不齐,搭建私有仓库,可以更严格地控制模块的质量和安全,只有经过审批的模块才允许被加入私有仓库。

二、cnpm的特点

  • 压缩包等文件从数据库中分离,放在CDN上,减轻了数据库的压力,提高了访问速度。
  • 使用MySQL替换了CouchDB,更容易部署。同时由于大部分开发者更熟悉MySQL,因此架设起来更方便。
  • CDN和MySQL都可以方便的扩展。

这里写图片描述

三、cnpm的部署

cnpm的部署非常简单

从官方的文档中,我们看到CNPM服务器环境,只需要node(0.11.12)+mySQL(>=0.5.0),另外我们还需要Linux的环境。

开始部署

1. 克隆CNPM

首先选择一个目录存放cnpm项目,然后使用命令

git clone  https://github.com/cnpm/cnpmjs.org.git

将其下载到本地环境。

完成后如下图所示:
这里写图片描述

进入到cnpmjs.org文件夹中

这里写图片描述

上图中config文件夹中存放的index.js文件即为cnpm服务的配置文件。

2. 安装依赖

将项目clone下来之后第二步需要安装相应的依赖。
使用命令:

npm install --registry=http://registry.npm.taobao.org

安装sqlite3时容易各种报错,如果使用mysql替代sqlite的话,可以先将package.json中的sqlite3依赖给删掉,再进行安装。
这里写图片描述

3. 创建数据库

依赖安装完成后,就需要创建相应的数据库并导入数据。

mysql -uroot -pmysql -e 'DROP DATABASE IF EXISTS cnpmjs_test;' &&\
mysql -uroot -pmysql -e 'CREATE DATABASE cnpmjs_test;' &&\
mysql -uroot -pmysql 'cnpmjs_test' < docs/db.sql &&\
mysql -uroot -pmysql 'cnpmjs_test' -e 'show tables;'

-u及-p后面跟相应的数据库账号和密码

  • 第一句话的意思是如果数据库中存在cnpmjs_test则删掉此数据库
  • 第二句话为创建数据库cnpmjs_test
  • 第三句话为导入相应的文件到数据库中,这个文件是随着cnpmjs.org项目一起clone下来的
  • 第四句话显示cnpmjs_test数据库中的表
4. 修改配置文件

数据库导入完成之后,需要在./config/index.js中修改项目相应的配置。

这里写图片描述
enableCluster推荐为true,
registryPort为api专用的服务端口,默认为7001;
webPort为web服务端口,默认为7002;
bindingHost这一行如果不使用nginx做反向代理,推荐注释掉


这里写图片描述

database为数据库相关的配置项,db为刚才创建的数据库名字,username和password改为相应的数据库用户名和密码;

dialect改为mysql


这里写图片描述
enableCompress:是否开启gzip压缩支持,推荐为true


这里写图片描述
“none”:永不同步,只管理私有用户上传的包,其他源包会直接从源站获取;
“exist”:定时同步已经存在于数据库的包;
“all”:定时同步所有源站的包;
推荐使用exist


5. 启动项目

以上步骤完成之后就可以开始启动项目了;
linux的防火墙默认未开放相应的端口,可以关闭防火墙或者使用端口转发的方式等等;

端口转发的相关信息看这里:
http://blog.csdn.net/xs20691718/article/details/51578725

使用命令

npm start

开启项目后会显示
这里写图片描述

此时在浏览器中访问相应的7001和7002端口即可看到返回的数据
这里写图片描述

这里写图片描述


6. 使用cnpm

在其它设备上使用npm install --registry=http://192.168.11.198:7001即可从此服务器上下载依赖包。

也可以安装cnpm客户端之后使用cnpm install命令进行安装

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值