服务器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