必要性:
如果公司处于隐私保护的目的,不想将封装的包推到npm社区,但是又急需一套完整的包管理工具来管理很多的封装组件,以方便公司内部人员使用.创建一套私有的npm仓库很有必要.
注:创建私有仓库还可以存着一些常用的npm包,相比npm和淘宝镜像的cnpm,私有仓库安装依赖的速度更快.
安装环境:
centos服务器,nodejs,pm2,nginx
搭建过程:
使用SecureCRT进入服务器
1.安装node.js 详情见 --> 服务器配置--centos
2.安装verdaccio npm install -g verdaccio --unsafe-perm
注:加上--unsafe-pern的原因是防止包grywarn权限错误
3.修改配置文件config.yaml,在最后添加监听的端口,端口可修改listen:0.0.0.0:4873
注:如果不知道config.yaml的路径,可以先直接启动verdaccio,启动日志里面会显示完整路径
warn --- config file - /root/.config/verdaccio/config.yaml
4.启动verdaccio
verdaccio
5.进程守护
为了防止异常情况引起的verdaccio服务停止,采用nohup或者pm2做进程守护
nohup做进程守护nohup verdaccio &
注:nohup是linux自带的不需要安装,如果使用pm2的话需要额外安装npm install pm2 -g
pm2做进程守护pm2 start verdaccio
6.nginx配置域名和代理
如果不想把外网ip和端口暴露出去或者为了提升访问效率使用多台服务器,可以采用nginx配置
nginx的安装略过 详情见 -->centos下Nginx的安装与简单配置
配置:server {
listen 80;
server_name 'www.example.com';
loaction /{
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if($request_uri ~ "^\/系统一"){
proxy_pass serverip:server-port;
}
}
}
到此,安装完成,那么如何使用呢
使用:
1.安装nrm,nrm是一个npm的资源管理器,允许快速的在npm源之间切换npm install -g nrm
使用nrm增加私有仓库的源nrm add exampleName http://www.example.com:8080
执行nrm ls查看本机的可选源 npm ---- https://registry.npmjs.org/
cnpm --- http://r.cnpmjs.org/
taobao - https://registry.npm.taobao.org/
* exampleName --- http://www.example.com:8080/
注:带星号的代表当前所使用的源可以使用 nrm use name切换不同的源
2.上传,更新组件
再上传之前,需要先增加用户npm adduser
如果已经有了账号直接登录npm login
根据提示输入用户名,密码,邮箱.
初始化npm包npm init
根据提示输入包名,版本号等等的信息,开发完成,执行下面命令上传发布npm publish
如需修改,修改完成之后,在次执行npm publish,会自动替换成最新的.
3. 下载使用nrm -i 组件名 /nrm -i 组件名
使用方式和npm安装的依赖是完全一样的.