开始搭建 基础环境 兵马未动,粮草先行,既然是搭建企业级的应用,基础环境得备好。
Linux 服务器
node 环境
数据库( Mysql )
nginx
环境搭建 1. Linux 服务器 这里示例使用的是腾讯云的云服务器,系统为centos7
,linux 系统版本为7.x
。
2. 安装 nodejs
安装
1 2 3 4 5 6 7 8 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash nvm install 20 node -v npm -v
更换 npm 源
1 npm config set registry https://registry.npmmirror.com/
3. 安装 mysql 参考 Mysql 的安装与配置 文章。
4. nginx 参考 nginx 的安装与配置 文章。
私有仓库搭建 建议先将 cnpmjs.org 项目源码克隆到本地计算机的目录中,修改完相关配置,再上传到服务器中进行部署。
1 git clone https://github.com/cnpm/cnpmjs.org.git
2. 修改配置
修改项目目录下的 config/index.js
中的配置,这里配置非常多,如需正常使用,先关注下面的一些配置即可。
修改下载配置 如果我们把包存在了服务器本地,且使用了 ip 作为访问地址,则需修改该配置。打开 lib/common.js
,找到setDownloadURL
函数,将其修改为以下配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 exports .setDownloadURL = function (pkg, ctx, host ) { if (pkg.dist ) { host = host || config.registryHost || ctx.host ; var protocol = config.protocol || ctx.protocol ; pkg.dist .tarball = util.format ( "%s://%s:%s/%s/-/%s-%s.tgz" , protocol, host, config.registryPort , pkg.name , pkg.name , pkg.version ); } };
3. 将修改后的项目上传到服务器
新建文件夹
上传项目文件到 usr/cnpmjs 我使用的是 xshell 和 xftp 将文件压缩后上传到服务器中,也可使用其他工具。
解压
1 2 cd usr/cnpmjsunzip xxx.zip
安装依赖
4. 创建数据库
登录数据库
创建数据库
创建数据库表
5. 启动项目,配置 nginx
启动项目
配置 nginx
1 vim /usr/local/nginx/conf/nginx.conf
配置 nginx 为以下配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 server{ listen 80; server_name localhost; location / { proxy_pass http://127.0.0.1:7002/; proxy_set_header X-Real-IP $remote_addr ; } location /registry/ { proxy_pass http://127.0.0.1:7001/; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header Host $host ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; } location = /50x.html { root html; } }
重启配置
1 /usr/local/nginx/sbin/nginx -s reload
访问 web 页面 浏览器打开 xxx.xxx.xxx.xx(服务器地址),会看到 cnpm 页面。
重启项目 如果修改了项目配置文件,需要重启项目才能生效
1 2 npm run stop npm run start
6. 配置私有源
安装 nrm ,用于 npm 源管理。
新增私有源
1 2 nrm add name http://xxx.xx.xx.xx/registry
使用私有源
查看当前源
7. 测试发布 npm 包
npm 包的编写请查看npm包编写
文档。
注册 npm 用户
登录
发布 npm 包
查看 npm 包 在发布成功后,打开 http://xxx.xx.xx.xx 会看到统计中数量增加,且能通过搜索,搜索到该包。
下载包
扩展 pm2 进程管理
安装 pm2
启动项目
1 2 pm2 start /usr/cnpmjs/dispatch.js
查看进程
使用云存储 待续…