服务器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
相关推荐
ChinaRainbowSea1 小时前
1. Linux下 MySQL 的详细安装与使用
linux·数据库·sql·mysql·adb
网络安全(华哥)1 小时前
网络安全服务实施流程管理 网络安全服务体系
运维·服务器·网络
致奋斗的我们1 小时前
Nginx反向代理及负载均衡
linux·运维·mysql·nginx·负载均衡·shell·openeluer
百锦再1 小时前
在Linux上创建一个Docker容器并在其中执行Python脚本
linux·python·docker
忧虑的乌龟蛋2 小时前
嵌入式 Linux:使用设备树驱动GPIO全流程
linux·服务器·嵌入式·imx6ull·gpio·点灯·pinctrl
朝九晚五ฺ2 小时前
【Linux探索学习】第三十弹——线程互斥与同步(上):深入理解线程保证安全的机制
linux·运维·学习
小林熬夜学编程2 小时前
【MySQL】第八弹---全面解析数据库表的增删改查操作:从创建到检索、排序与分页
linux·开发语言·数据库·mysql·算法
六六六六六66662 小时前
企业组网IP规划与先关协议分析
服务器·网络·tcp/ip
m0_748236113 小时前
Spring Boot 实战:轻松实现文件上传与下载功能
linux·spring boot·后端
鱼不如渔3 小时前
leetcode刷题第十三天——二叉树Ⅲ
linux·算法·leetcode