从后端那里要来了一个服务器,上面啥都没有,想要搭建一个npm私有化仓库 放一些公司项目的公共组件,还有项目的SDK,搞成库 引入到项目中去使用。这就开搞。
首先登录服务器,
搭建环境
第一步,安装nodejs
yum install -y epel-release
yum 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
进程
- 安装pm2
npm install -g pm2
- 使用pm2启动verdaccio
pm2 start verdaccio
- 查看pm2 守护下的进程verdaccio的实时日志
pm2 show verdaccio
- 实时查看该路径下的日志命令
tail -f /home/admin/.pm2/logs/verdaccio-out-0.log
配置过程中有几个命令常用到
netstat -tunlp // 查看所有的端口进程
netstat -tunlp|grep 端口号 // 查看指定的端口号
kill 端口号 // 杀死指定的端口号进程
telnet ip地址 端口号 // telnet需要安装, 查看该地址 该端口是否被使用
// 例如
telnet localhost 4873
telnet 192.168.0.1 4873
这时候服务器配置好了,比如服务器的地址是192.168.0.1
, 正常在我们浏览器访问http://192.168.0.1:4873
就可以访问到(端口要加,防火墙要关闭!)
管理源 发布包
接下来我们就要发布包到我们的私有化仓库上面去!
先安装一个切换npm
源的工具nrm
npm i nrm -g
nrm 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...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。