npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

npm私服搭建步骤

原文地址:https://blog.csdn.net/chuiyuanwo0/article/details/94402405

耗时1周研究出来了

博客上发布的格式可能不好看。原word下载地址

已设置 永久 分享不会删除

链接:https://pan.baidu.com/s/1aV03ek7aO45JDUc36b_HvQ 
提取码:igyq 

 

在网上找了很多教程,都没能实现离线安装,无论是使用 npmbox 打包 或者是npm 缓存安装 只要offline没网环境全部失败。

鉴于以上方案都失败,换了一个大胆的思路。

搭建思路

首先在有网的环境准备一台centos7虚拟机。安装好node pm2 和verdaccio,作为npm私服(称呼为online服务端)。然后在找一台机器 window或者linux随意(称呼为online客户机),安装node 环境。并设置 npm 包源为 online服务端的verdaccio地址。然后在客户机上 再次全局安装一遍 pm2 和 verdaccio。 这样 online 服务端上 就缓存了 pm2和verdaccio的安装文件。然后把 online服务端虚拟机迁移到 offline环境。

然后在offlineserver的虚拟机上安装node,设置npm包源为online服务端的地址。执行安装 verdaccio和pm2。

offline客户端 设置包源为 offline服务端。执行各种包的安装

私服搭建架构示意图

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

安装准备

所需工具

VMware 14.1.3

网上去下载 什么版本无所谓。记住保留好VMware安装包。

CentOS-7-x86_64-DVD-1810.iso

镜像下载地址。

https://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso

安装系统时选择 虚拟服务器 千万不用最小安装

安装步骤

online环境

  1. 安装 VMware

在windows上安装VMware

  1. 安装Centos7

安装系统时选择 虚拟服务器 千万不用最小安装

这里给机器取名为 onlineserver

  1. 安装node环境

3.1、安装

用ssh工具连接onlineserver后进入目录

cd /usr/local

下载 node包

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

解压

tar -xvf node-v12.4.0-linux-x64.tar.xz

换个文件夹名

mv node-v12.4.0-linux-x64/ nodejs

 

建立软链接

ln -s /usr/local/nodejs/bin/node /usr/local/bin

ln -s /usr/local/nodejs/bin/npm /usr/local/bin

 

测试

node –v

npm –v

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

 

3.2、设置npm淘宝源

国内连接默认npm源速度较慢,使用以下命令更换npm为淘宝源

npm config set registry http://registry.npm.taobao.org/

设置完成

可以使用 npm config get registry 查看 npm 源地址来验证

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

  1. 安装verdaccio

npm install -g verdaccio

  1. 安装pm2

npm install -g pm2

5.1、修改verdaccio配置文件

verdaccio 默认只能本机访问。需要在配置文件最后面添加 其他ip可访问的配置

进入配置文件

vim /root/.config/verdaccio/config.yaml

按insert 进入输入模式

找到 uplinks 节点 修改url 为 https://registry.npm.taobao.org/

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

在文件最后一行添加如下配置

listen:

# - localhost:4873            # default value

# # - http://localhost:4873     # same thing

   - 0.0.0.0:4873              # listen on all addresses (INADDR_ANY)

#   # - https://example.org:4873  # if you want to use https

#   # - [::1]:4873                # ipv6

#   # - unix:/tmp/verdaccio.sock    # unix socket

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

按esc然后输入 :wq 退出并保存

5.2、启动verdaccio

直接输入

verdaccio

如果你的全局安装没出现问题,则服务器自动启动。

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

verdaccio 进程本身十分脆弱,ctrl+c 就停止了。需要使用pm2来守护它。

使用 pm2启动verdaccio

pm2 start verdaccio

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

停止pm2进程

pm2 stop verdaccio

重启pm2进程

pm2 restart verdaccio

查看pm2进程列表

pm2 ls

删除pm2进程

pm2 delete verdaccio

 

如果输入verdaccio或者pm2 后提示未找到命令

则需要配置环境变量

vim /etc/profile

在最后一行添加

export PATH="/usr/local/nodejs/lib/node_modules/verdaccio/bin:/usr/local/nodejs/lib/node_modules/pm2/bin:$PATH"

必须要重新加载

source /etc/profile

然后在执行5.2的操作

  1. online客户机操作

6.1、安装node

找一台windows或者linux 随便什么系统。安装node 运行环境。

window就去node 官网下载安装包,linux 参考上面node环境安装。

6.2、设置npm源

设置客户机npm包源为 onlineserver:4873

6.3、安装verdaccio

npm install -g verdaccio

 

6.4、安装pm2

npm install -g pm2

况下执行完以上步骤就可以onlineserver迁移到offline环境了。不过为了验证包缓存的是否正确。请尝试如下操作直到断网状态下可以成功安装vedacciopm2

第一次安装完上面的2个包之后。把 onlineserver 断开外网,online客户机也断开外网。

然后卸载verdaccio和pm2

npm uninstall –g verdaccio

npm uninstall –g pm2

在执行安装

npm install –g verdaccio

npm install –g pm2

重复这个步骤,直到在断网状态下 能成功安装 verdaccio和pm2

简单来说就是 断网 卸载包重新安装。如果安装失败就开网重新安装,这个步骤会重复若干次。

6.5、迁移onlineserver

关闭虚拟机 onlineserver

init 0 关机

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

虚拟机上 右键设置 点击硬盘 在右侧路径中可以找到虚拟机安装位置

进入这个目录

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

压缩为onlineserver.zip 或者 onlineserver.rar

offline环境

1、还原onlineserver虚拟机

找一台windows系统的机器安装VMware

解压onlineserver.zip到一个路径中。

使用WMware打开虚拟机功能

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

选择vmx文件

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

开启虚拟机  使用 ip addr 命令 查看ip

例如ip为 10.54.1.100

由于很多公司都可能会使用私有云,私有云是没有网络的。

在内网环境中找一台机器作为offlineserver(centos7系统)

例如ip为 10.54.1.101 和 onlineserver 能相互访问通

2、offlineserver安装node

cd /usr/local

还记得之前下载过的node安装包吗?

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

解压

tar -xvf node-v12.4.0-linux-x64.tar.xz

换个文件夹名

mv node-v12.4.0-linux-x64/ nodejs

 

建立软链接

ln -s /usr/local/nodejs/bin/node /usr/local/bin

ln -s /usr/local/nodejs/bin/npm /usr/local/bin

 

测试

node –v

npm –v

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

3、设置npm源为onlineserver

npm config set registry http:// 10.54.1.100:4873/

4、安装verdaccio

npm install –g verdaccio

5、安装pm2

npm install –g pm2

6、修改verdaccio配置

在文件最后一行添加如下配置

listen:

# - localhost:4873            # default value

# # - http://localhost:4873     # same thing

   - 0.0.0.0:4873              # listen on all addresses (INADDR_ANY)

#   # - https://example.org:4873  # if you want to use https

#   # - [::1]:4873                # ipv6

#   # - unix:/tmp/verdaccio.sock    # unix socket

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

 

按esc然后输入 :wq 退出并保存

7、启动verdaccio

pm2 start verdaccio

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

停止pm2进程

pm2 stop verdaccio

重启pm2进程

pm2 restart verdaccio

查看pm2进程列表

pm2 ls

删除pm2进程

pm2 delete verdaccio

 

如果输入verdaccio或者pm2 后提示未找到命令

则需要配置环境变量

vim /etc/profile

在最后一行添加

export PATH="/usr/local/nodejs/lib/node_modules/verdaccio/bin:/usr/local/nodejs/lib/node_modules/pm2/bin:$PATH"

必须要重新加载

source /etc/profile

然后在执行7的操作

verdaccio成功启动后 内网环境的 onlineserver 就可以关机或者删除掉了。

8、offline客户机设置

安装node不用说了

设置npm包源为 offlineserver 

npm config set registry http://10.54.1.101:4873/

9、关于补包

在online环境客户机上安装包,onlineserver会自动缓存。

进入online环境的verdaccio包缓存目录

cd /root/.config/verdaccio/storage

把整个目录打包

zip –r packages.zip ./*

复制压缩包到 内网环境的 offlineserver的缓存目录中

cd /root/.config/verdaccio/storage

覆盖解压

unzip –o packages.zip

一些技巧和注意事项

(注)防火墙问题

外部想访问记得关闭防火墙

查看防火墙状态

# firewall-cmd --state

 

关闭防火墙

# systemctl stop firewalld.service

禁止firewall开机启动

# systemctl disable firewalld.service

或者是在防火墙上放开端口

firewall-cmd --state                # 先查看防火墙状态

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

service firewalld start              # 开启防火墙:

firewall-cmd --zone=public --add-port=4873/tcp --permanent  #开放4873端口

firewall-cmd --reload              #重新载入

firewall-cmd --zone=public --query-port=4873/tcp    #查看是否添加成功

(注)安装verdaccio报grywarn权限错

加上–unsafe-perm的原因是防止报grywarn权限的错。

npm install -g verdaccio --unsafe-perm

安装pm2报grywanm错误

npm install -g pm2 --unsafe-perm

 

获取yum缓存的rpm包

修改yum配置文件:

root@ #vim /etc/yum.conf

修改文件内容如下:

[main]

cachedir=/缓存路径 // 原始值/var/cache/yum/$basearch/$releasever

keepcache=1 // 原始值为0 表示安装完后删除包

metadata_exprire=31536000 //过期时间1年 单位秒

 

之后就可以通过执行yum命令去自己设置的缓存路径中得到我们要安装的文件了

 

yum 基本包

cd /var/cache/yum/x86_64/7/base/packages/

扩展包

cd /var/cache/yum/x86_64/7/extras/packages/

升级包

cd /var/cache/yum/x86_64/7/updates/packages/

 

 

SSH 安装

https://www.cnblogs.com/liuhouhou/p/8975812.html

查看 npm 缓存目录

npm get cache

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

第一次是没有这个目录的,初次安装包之后才有。

转移文件权限

转移文件所属用户和用户组 chown -R admin.admin *

 

设置 npm源

如果网络不好更换npm淘宝镜像

1.得到原本的镜像地址

# npm get registry 

> https://registry.npmjs.org/

设成淘宝的

# npm config set registry http://registry.npm.taobao.org/

# yarn config set registry http://registry.npm.taobao.org/

2.换成原来的

# npm config set registry https://registry.npmjs.org/

verdaccio 发布私有包

添加一个用户

npm adduser --registry http://192.168.148.128:4873

npm私服verdaccio搭建npm离线安装DaTree耗时一周2019完整版

 

请参考最后面的资料

 

进入 verdaccio 包存储目录

cd /root/.config/verdaccio/storage/

查看(包)文件夹数量

ls -l|grep "^d"| wc -l

# 查看当前目录下的文件数量(不包含子目录中的文件)

ls -l|grep "^-"| wc -l

# 查看当前目录下的文件数量(包含子目录中的文件) 注意:R,代表子目录

ls -lR|grep "^-"| wc -l

# 查看当前目录下的文件夹目录个数(不包含子目录中的目录),同上述理,如果需要查看子目录的,加上R

ls -l|grep "^d"| wc -l

# 查询当前路径下的指定前缀名的目录下的所有文件数量
# 例如:统计所有以“20161124”开头的目录下的全部文件数量

ls -lR 20161124*/|grep "^-"| wc -l

 

清空本地 npm 缓存

npm cache clean --force

 

查看 linux 里所有的安装包

yum list installed

 

压缩解压缩命令

压缩

[root@mysql test]# zip -r test.zip ./*

将当前目录下的所有文件和文件夹全部压缩成test.zip文件,-r表示递归压缩子目录下所有文件。

解压缩

unzip –o test.zip

-o 代表覆盖解压不提示

提取(解压缩)tar 文件

tar –xvf abc.tar.gz

参考资料

verdaccio 安装 及发布私有包

https://blog.csdn.net/yyzzhc999/article/details/80097073

npm离线安装 (失败了留作参考)

https://blog.csdn.net/y75475/article/details/85200471

上一篇:使用verdaccio搭建npm私服


下一篇:Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: 解决办法