服务器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
相关推荐
尹蓝锐1 天前
在学校Linux服务器上配置go语言环境
linux·运维·服务器
用户31187945592181 天前
Fedora 38 安装 perl-JSON RPM 包步骤(含依赖问题解决及附安装包)
linux
运维闲章印时光1 天前
网络断网、环路、IP 冲突?VRRP+MSTP+DHCP 联动方案一次性解决
运维·服务器·开发语言·网络·php
ARTHUR-SYS1 天前
基于Kali linux 安装pyenv及简单使用方法及碰到的问题
linux·运维·chrome
南山鹤1661 天前
中型规模生产架构部署详细步骤
linux
Arlene1 天前
IP 协议的相关特性
服务器·网络·tcp/ip
IvanCodes1 天前
十六、Linux网络基础理论 - OSI模型、TCP/IP协议与IP地址详解
linux·网络·tcp/ip
shylyly_1 天前
Linux-> TCP 编程2
linux·服务器·网络·tcp/ip·松耦合·command程序
upgrador1 天前
操作系统命令:Linux与Shell(Operating System & Command Line, OS/CLI)目录导航、文件操作与日志查看命令实践
linux·ubuntu·centos
夜月yeyue1 天前
多级流水线与指令预测
linux·网络·stm32·单片机·嵌入式硬件