服务器Linux搭建NPM私有仓库

服务器Linux搭建NPM私有仓库

环境搭建

安装

nodejs

nodejs官网:https://nodejs.org/en/download/package-manager

可以去官网自行下载nodejs的Linux版本,但是出于别的原因考虑,可以使用nvm去下载nodejs这样会切换nodejs也方便。

nvm

这样就以nvm为例

github仓库:https://github.com/nvm-sh/nvm/releases

如我现在的版本:0.39.7

解压安装包

bash 复制代码
tar -xzf nvm-0.39.7.tar.gz 

移动目录

bash 复制代码
mv /var/nvm nvm-0.39.7

配置环境

bash 复制代码
vim ~/.bashrc

编辑这个文件,在里面加上,NVM_DIR每个人目录不一样根据你的来

bash 复制代码
export NVM_DIR="/var/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

让配置文件生效

bash 复制代码
source ~/.bashrc

测试安装

bash 复制代码
nvm install 20
nvm use 20

安装verdaccio

前面是这样启动的直接输入verdaccio但是处于严谨考虑后面会使用pm2 start verdaccio这样就可以后台方式运行了。当前启动如果终止就无法访问verdaccio了

bash 复制代码
# 设置国内镜像源
npm config set registry https://registry.npmmirror.com/
# 安装verdaccio
npm  install -g verdaccio
# 运行Verdaccio
verdaccio

使用pm2启动

bash 复制代码
npm install -g pm2
pm2 start verdaccio

运行后会出现以下。

第一行是verdaccio的配置文件路径,第二行和第三行是插件加载信息,第二行是镜像源的URL,通常我们需要开放到整个内网中,那么我们不太希望使用localhost去访问,更多情况下希望使用IP或域名去访问,这个时候就得修改配置了。

properties 复制代码
info --- config file  - /root/.config/verdaccio/config.yaml
info --- the "crypt" algorithm is deprecated consider switch to "bcrypt" in the configuration file. Read the documentation for additional details
info --- using htpasswd file: /root/.config/verdaccio/htpasswd
info --- plugin successfully loaded: verdaccio-htpasswd
info --- plugin successfully loaded: verdaccio-audit
warn --- http address - http://localhost:4873/ - verdaccio/5.30.3

编辑/root/.config/verdaccio/config.yaml文件

找到这一行,并修改这一段。

properties 复制代码
# a list of other known repositories we can talk to
uplinks:
  npmjs:
    url: https://registry.npmmirror.com/
# 监听端口,可以通过浏览器访问
listen: 0.0.0.0:4873

修改后的,然后重启服务!!!

bash 复制代码
# 重启服务
verdaccio

使用pm2启动

bash 复制代码
pm2 start verdaccio

上传依赖包

配置完成后就可以上传自己的依赖包了。

切换镜像源

这个要切换到我们自己的镜像源。

bash 复制代码
npm config set registry http://192.168.1.4:4873/

为了更好的对镜像源管理我建议使用nrm来切换:

中间名字verdaccio可以随便取。

bash 复制代码
npm install -g nrm
nrm add verdaccio http://192.168.1.4:4873/
# 这时如果没有出错就已经切换到我们自己的镜像源了
nrm use verdaccio

# 奢姿npm官方镜像
nrm add npmjs https://registry.npmjs.org
nrm use npmjs

使用nrm ls查看当前所有镜像源。

bash 复制代码
# 查看所有镜像源
nrm ls
# 删除镜像源
nrm del 镜像源名称

查看当前镜像源是否为我们自己的。

bash 复制代码
# 查看当前镜像源
npm config get registry

登录用户

bash 复制代码
# 输入你的用户名和密码
npm login
# 查看当前用户是谁
npm who am i

上传包

需要初始化包,当你也可以下载一个npm包然后推送到自己仓库,或者是自己做一个npm包然后推送。

bash 复制代码
mkdir my-package
cd my-package
npm init

然后添加用户,按照要求指引完成创建用户!!!

bash 复制代码
npm adduser

之后将包推送到仓库中。

bash 复制代码
npm publish
# 或者使用
npm publish --registry http://192.168.1.4:4873/

当前页面中也有教程。

如果不出意外的话会出现这个。

发布完成后,刷新页面会出现我们之前上传的包。

如果出错报503,请继续往下看

下载我们的包

和正常npm下包方式一样,直接下载即可。

bash 复制代码
npm install bunny-cli

关于503错误

搜索:publish:

之后将改为allow_offline: true,修改完成重启verdaccio服务

bash 复制代码
pm2 restart verdaccio

外链图片转存中...(img-RxMj8w5t-1713007536649)

下载我们的包

和正常npm下包方式一样,直接下载即可。

bash 复制代码
npm install bunny-cli

关于503错误

搜索:publish:

之后将改为allow_offline: true,修改完成重启verdaccio服务

bash 复制代码
pm2 restart verdaccio
相关推荐
霸道流氓气质19 分钟前
ApiPost 中配置自动获取 Token 并调用业务接口完整指南
java·服务器·数据库
时空无限31 分钟前
vllm 大模型启动缓存相关环境变量 export
linux·缓存·vllm
Echo_cy_40 分钟前
基于ZYNQ-7000的Ethernet驱动配置
linux·驱动开发·嵌入式硬件·fpga开发·ethernet·zynq
ShineWinsu1 小时前
对于Linux:模版方法类的解析以及socket、TcpSocket的封装
linux·c++·面试·socket·模板方法模式·封装·tcpsocket
无足鸟ICT2 小时前
【RHCA+】查看变量
linux·运维·服务器
Kina_C2 小时前
Linux DNS 服务器-从高速缓存到辅助 DNS 部署指南
linux·运维·服务器·dns
EasyGBS2 小时前
ONVIF设备接入国标GB28181视频平台EasyGBS:不用国标也能一键拉流!
服务器·php·音视频
suaizai_2 小时前
TypeScript 7 正式发布!Vue 暂被 “拒之门外“ !!!
linux·运维·ubuntu
小小代码狗3 小时前
SQLi-Labs 基础注入实战教程(Less-1 ~ Less-5and Less-9)
服务器·python·php
慕伏白3 小时前
【慕伏白】Linux 系统如何根据端口号关闭进程
linux·运维·服务器