环境配置
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/