从零开始,在linux centeros 7.0搭建verdaccio私有npm库并使用

环境配置

linux centos7,nodejs,verdaccio,pm2

nodejs的下载安装及环境变量配置

下载:

wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz

解压及重命名:

xz -d node-v12.18.3-linux-x64.tar.xz 
tar -xf node-v12.18.3-linux-x64.tar
mv node-v12.18.3-linux-x64 node-v12.18.3

设置node全局环境变量:

vi .bash_profile  // 修改用户环境变量文件

键入i,进入插入模式:

export NODE_HOME=/usr/local/node-v12.18.3/bin
export PATH=$PATH:$NODE_HOME

Esc 退出插入模式,shift+ 后输入wq保存并且退出

让修改的环境变量文件生效:

source .bash_profile

至此,一切都很顺利,然而验证一下:

node -v
bash: node: 未找到命令...

哈哈,有点尴尬。这不能怪我哈,我严格且标准的按照百度上大佬们提供的步骤进行的。
找原因吧,下载安装应该不会有问题,因为已经生成了我们下载的node包了。
那问题就是出在环境变量的配置上。继续百度,还有一个环境变量的配置方案,系统的全局环境变量配置:

vi /etc/profile
// 下面步骤和上面的环境变量配置方法相同
......

见证奇迹的时刻到了?

node -v
bash: node: 未找到命令...

???我必须吐槽一波网上的这些大佬们,你们是不是没验证过啊,还是偷偷藏了些私货,没写完整?
继续查资料,过滤掉和以上两种方法一样的文章后,还剩下一篇关于设置软连接的方法。
什么是软连接:可以方便使用的方式。试一下。

ln -s /root/node-v12.18.3-linux-x64/bin/node /usr/local/bin/node   // ln -s 解压的node地址  软连接的目标地址
ln -s /root/node-v12.18.3-linux-x64/bin/npm /usr/local/bin/npm 

node -v
v12.18.3
npm -v
6.14.6

OK,node的配置成功,相当于万里长征走了一半,剩下就简单了。

安装verdaccio

按照官方文档的使用说明,直接 npm 全局安装 verdaccio 就行。

npm install -g verdaccio 
...安装中...
...安装中...
...安装中...
ERROR: grywarn权限问题报错

what?root账号登录,也会权限报错?不讲武德。那就见招拆招:

npm install -g verdaccio --unsafe-perm
...安装中...
...安装中...
...安装中...
+ [email protected]

成功后,我们修改一下config.yaml配置文件

vi /root/.config/verdaccio/config.yaml

在配置文件末尾最后添加监听端口:

listen: 172.xx.xx.xx:4873 // 我们的服务器地址,因为我们是要访问这个地址的嘛

就验证一下,按照官方文档的使用说明,执行:

verdaccio

bash: verdaccio: 未找到命令...

咦?这么眼熟?和验证nodejs的错误一样。那就好办了,同一个坑,不可能踩两次的:

ln -s /root/node-v12.18.3-linux-x64/bin/verdaccio /usr/local/bin/verdaccio

再执行:

verdaccio

*** WARNING: Verdaccio doesn't need superuser privileges. Don't run it under root! ***
 warn --- config file  - /root/.config/verdaccio/config.yaml
 warn --- Verdaccio started
 warn --- Plugin successfully loaded: verdaccio-htpasswd
 warn --- Plugin successfully loaded: verdaccio-audit
 warn --- http address - http://172.xx.xx.xx:4873/ - verdaccio/4.11.0
 fatal--- cannot create server: listen EADDRINUSE: address already in use 172.xx.xx.xx:4873/

端口被占用了?netstat -tunlp 查一下,果然:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 172.xx.xx.xx:4873      0.0.0.0:*               LISTEN      7557/hr-ui组件库 
...

果断杀掉:kill -9 7557
再执行 verdaccio

warn --- config file  - /root/.config/verdaccio/config.yaml
 warn --- Verdaccio started
 warn --- Plugin successfully loaded: verdaccio-htpasswd
 warn --- Plugin successfully loaded: verdaccio-audit
 warn --- http address - http://172.xx.xx.xx:4873/ - verdaccio/4.11.0

成功运行。
我们浏览器访问一下,页面报错:无法访问此网站,拒绝了我们的连接请求。外网不能访问?
找下原因,确实,4873这个端口没有对外暴露,所以访问不了。那就暴露一下,执行命令:

firewall-cmd --zone=public --add-port=4873/tcp --permanent
success

firewall-cmd --reload      #开放端口需要重启防火墙才能生效
success

再访问 http://172.xx.xx.xx:4873/,成功进入官方文档说的首页了。

利用pm2一直守护verdaccio进程

直接使用 verdaccio 虽然可以正常启动,但是不能一直保持进程开启,所以我们可以使用pm2来对verdaccio进程进行托管启动

1.安装pm2

npm install -g pm2 --unsafe-perm

2.软连接pm2

ln -s /root/node-v12.18.3-linux-x64/bin/pm2 /usr/local/bin/pm2

3.pm2启动verdaccio

pm2 start verdaccio

好的,至此,这个进程就一直保持开启状态了。

verdaccio如何使用

上面所有的步骤都是 verdaccio 服务的相关配置,那该如何使用呢?
简单,客户端执行以下命令:

//使用时需要手动添加用户
npm set registry http://172.xx.xx.xx:4873/ //切换到我们的私有库
npm adduser
//根据提示输入用户名和密码 邮箱

//由于我们上面已经切换了私有库了就直接登陆
npm login //按提示登陆
//在创建好的本地npm项目库文件执行上传
npm publish

刷新一下 http://172.xx.xx.xx:4873/ 看看,芜湖,成功上传了。

如何使用私有库的包?

指定安装的源地址就可以了:

npm install xxxx  --registry=http://172.xx.xx.xx:4873/

你可能感兴趣的:(从零开始,在linux centeros 7.0搭建verdaccio私有npm库并使用)