服务器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
相关推荐
大树889 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠9 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush49 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5209 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz10 小时前
Maven依赖冲突
java·服务器·maven
不会C语言的男孩11 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈11 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix
程序猿阿伟12 小时前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
凡人叶枫12 小时前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
AC赳赳老秦12 小时前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw