部署环境介绍
系统信息 |
||
名称 |
版本 |
|
操作系统 |
CentOS release 6.9 (Final) |
|
系统内核 |
2.6.32-696.el6.x86_64 |
|
组件信息 |
||
名称 |
版本 |
|
node |
V4.8.5 |
|
npm |
2.5.11 |
|
mysql |
5.6.11 |
|
部署信息 |
||
IP地址 |
配置信息 |
部署组建 |
10.0.9.17 |
2c/1g/10G |
node,npm,mysql,cnpm |
第一部分:安装
初始化环境
yum install gccgcc-c++ vim-enhanced glibc make unzip openssl openssl-devel openssh-serveropenssh-clients wget -y
安装git
yum install git-y
下载cnpm源码包
git clone https://github.com/cnpm/cnpmjs.org.git cd cnpmjs.org |
搭建MySql
yum list installed | grep mysql yum remove mysql* -y rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm yum install mysql-server -y 修改配置文件 vim /etc/my.cnf 在mysqld下添加innodb_file_per_table 启动mysql服务 service mysqld start 设置mysql密码 mysql_secure_installation mysql -uroot -p111111 |
向MySql导入数据
mysql -uroot -p111111 DROP DATABASE IF EXISTS cnpmjs_test; CREATE DATABASE cnpmjs_test; use cnpmjs_test source /root/cnpmjs.org/docs/db.sql
修改cnpm的配置文件
cd cnpmjs.org/config/ vim index.js
把第30行添加注释 bindingHost前面加上注释 第100行,修改database下的内容,password处的密码是111111,dialect改为mysql |
安装cnpm启动时的依赖
npm installcfork npm installmkdirp npm installcopy-to npm installfs-cnpm npm installgraceful npm install koa npm installkoa-middlewares npm installkoa-bodyparser npm installkoa-rt npm installkoa-rewrite npm installkoa-conditional-get npm installkoa-etag npm installkoa-limit npm installdebug npm installsemver npm installsequelize npm installmysql npm installutility npm installhumanize-ms npm installmoment npm install co npm installco-gather npm installco-defer npm installthunkify-wrap npm install co-sleep npm install urllib npm installagentkeepalive npm installerror-formater npm installmini-logger npm installnodemailer npm installnormalize-registry-metadata npm installgravatar npm installmime npm installis-type-of npm installkcors npm installkoa-maxrequests npm installkoa-markdown npm install xss npm installmarkdown-it npm installbytes npm installgiturl npm installhumanize-number npm installkoa-safe-jsonp
启动cnpm
nohup node dispatch.js &
访问cnpm的web界面:10.0.9.17:7002显示如下
第二部分:使用
我们自己搭建的私有服务怎么用呢?设置私有注册库的方法如下:
创建一个项目目录
useradd npm11 su - npm11 mkdir nodejs-cnpm && cd nodejs-cnpm
下载指定私有库
一种简单的方式就是,下载的时候指定我们自己的私有库,这样就会从我们自己的私有库中下载。如果私有库没有对应的库,CNPM会自动同步到NPM 找到我们要下载的库和版本,先在CNPM中存一份,然后再传给客户端一份,运行原理和Maven的原理一样。
执行下载的操作
npm install ape-algorithm --registry=http://10.0.9.17:7001
查看下载的库
ls -l drwxrwxr-x 3npm11 npm11 4096 Nov 8 10:00node_modules
给项目设置私有库
如果这个项目所有依赖库都从公司内网下载,那么我们可以给整个项目设置私有库,就不需要每次下载的时候单独指定了,首先,我们查看项目的默设置,通过npm config list命令。
npm config list 显示如下
; cli configs user-agent = "npm/2.15.11 node/v4.8.5 linux x64" ; node bin location = /opt/node/bin/node ; cwd = /home/npm11/nodejs-cnpm ; HOME = /home/npm11 ; 'npm config ls -l' to show all defaults.
registry属性是指向NPM的官网位置https://registry.npmjs.org/,我们可以通过npm config set registry命令来修改这个配置。 |
npm config set registry http://10.0.9.17:7001
再次查看项目设置npm config list,显示如下
; userconfig /home/npm11/.npmrc registry = "http://10.0.9.17:7001/" ; node bin location = /opt/node/bin/node ; cwd = /home/npm11/nodejs-cnpm ; HOME = /home/npm11 ; 'npm config ls -l' to show all defaults.
这个项目再下载新包时,就会通过我们私有库去下载了。
当我们要发布包到NPM的时候,由于CNPM默认同步时间差是30分钟,如果想马上同步,需要手动输入同步的命令。
同步gcc包。
cnpm sync gcc
这样我们就完全地把CNPM私有库在公司内部用起来了。把包管理的问题解决了