服务器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
相关推荐
骑着蜗牛撵大象3271 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
..Dauntless..2 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
裕晟资质规划2 小时前
三类资质变更报告时限差在哪?军工 15 日、集成印制 10 日
大数据·服务器·网络
QMCY_jason2 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特2 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
轻舟技术A2 小时前
Provider 不属于 Agent 核心:rpi 的分层理由与收益
服务器·网络
连山齐名2 小时前
ai应用开发的学习笔记
服务器·笔记·学习
Shadow(⊙o⊙)2 小时前
仿muduo实现高并发服务器——事件就绪管理Channel.hpp
服务器·c++
あ-2 小时前
CubeSandBox配置CubeMaster CPU 超分
linux·运维·服务器
Escalating_xu2 小时前
【Linux 网络编程】TCP Socket 编程(上):从 listen、accept 到完整回显通信
linux·网络·tcp/ip