从后端那里要来了一个服务器,下面啥都没有,想要搭建一个npm私有化仓库 放一些公司我的项目的公共组件,还有我的项目的SDK,搞成库 引入到我的项目中去应用。这就开搞。

首先登录服务器,

搭建环境

第一步,装置nodejs

yum install -y epel-releaseyum install -y nodejs

node -v 查看一下

好家伙 版本这么低! 才6.17.1
降级一下版本, 装置一下nodejs包管理工具

npm install -g n

罕用的一些命令:

n stable // 把以后零碎的 Node 更新成最新的 “稳固版本”n lts // 长期反对版n latest // 最新版n 10.14.2 // 指定装置版本n  // 查看已装置的版本n rm 10.14.2  // 删除指定版本

命令行输出n回车

抉择一个版本再次回车
node -v再次查看,版本显示还是v6.17.1 切换了版本怎么没变动!

百度, 发现以后版本不是最新的版本,而后曾经装置有了最新的版本,造成不失效的起因:
node默认的装置目录与应用管理工具n装置的目录不统一,

解决办法:
查看以后node装置门路

which node

而 n 默认装置门路是 /usr/local,以后node的装置门路与n的门路不统一,须要通过通过N_PREFIX变量来批改 n 的默认node装置门路。

编辑环境配置文件:vim ~/.bash_profile

批改node装置地位:在开端减少export PATH=/usr/local/bin:$PATH shift+:wq 保留退出

让新配置失效:source ~/.bash_profile

重新安装稳固版本:n stable

查看以后node版本:node -v (曾经是最新的稳固版本了)

好了,能够开始闲事了,装置verdaccio!

装置verdaccio

npm i -g verdaccio

命令行输出 verdaccio 回车 启动verdaccio, 能够看到第一行的配置文件地址:

config file  - /root/.config/verdaccio/config.yaml

在配置文件的最初一行加上listen: 0.0.0.0:4873, 默认没有这一行的,只能在本机拜访,增加后能够通过外网拜访。

pm2守护verdaccio过程

  1. 装置pm2
    npm install -g pm2
  2. 应用pm2启动verdaccio
    pm2 start verdaccio
  3. 查看pm2 守护下的过程verdaccio的实时日志
    pm2 show verdaccio
  4. 实时查看该门路下的日志命令
    tail -f /home/admin/.pm2/logs/verdaccio-out-0.log

配置过程中有几个命令罕用到

netstat -tunlp  // 查看所有的端口过程netstat -tunlp|grep 端口号  // 查看指定的端口号kill 端口号  // 杀死指定的端口号过程
telnet ip地址 端口号  // telnet须要装置, 查看该地址 该端口是否被应用// 例如telnet localhost 4873telnet 192.168.0.1 4873

这时候服务器配置好了,比方服务器的地址是192.168.0.1, 失常在咱们浏览器拜访http://192.168.0.1:4873就能够拜访到(端口要加,防火墙要敞开!)

治理源 公布包

接下来咱们就要公布包到咱们的私有化仓库下面去!
先装置一个切换npm源的工具nrm

npm i nrm -gnrm list 或者 nrm ls // 查看源列表nrm add [name] [源url]  // 增加源nrm use [name]  // 应用源nrm del [name]  // 删除源

应用nrm use 切换到刚创立的私有化仓库的地址
登录:

npm whoami // 查看以后登录用户npm adduser --registry http://yourip:4873/

公布

npm publish --registry http://yourip:4873/// 如果你切换到以后源了 间接 npm publish 即可

而后刷新 就能够看到你公布的包了!

更新包:

1. 批改package.json version字段的版本号2. 命令行:npm publish

参考:
https://verdaccio.org/docs/zh...
降级node后还是原来版本的问题
Linux装置telnet
https://www.cnblogs.com/kunmo...