Linux 中使用 verdaccio 搭建私有npm 服务器

安装 Node

Linux中安装Node

安装verdaccio

bash 复制代码
npm i -g verdaccio

安装完成 输入verdaccio,出现下面信息代表安装成功,同时输入verdaccio后verdaccio已经处于运行状态,当然这种启动时暂时的,我们需要通过pm2让verdaccio服务常驻

bash 复制代码
   yg@iZ2zec61wsgbo9t9i346jbZ:~$ verdaccio
   warn --- config file  - /home/yg/.config/verdaccio/config.yaml
   warn --- Plugin successfully loaded: htpasswd
   warn --- Plugin successfully loaded: audit
   warn --- http address - http://localhost:4873/ - verdaccio/3.10.1

配置config.yaml

shell 复制代码
1、vim /home/yg/.config/verdaccio/config.yaml 进入编辑配置文件

# This is the default config file. It allows all users to do anything,
# so don't use it on production systems.
#
# Look here for more config file examples:
# https://github.com/verdaccio/verdaccio/tree/master/conf
#

# path to a directory with all packages
# 所有包缓存的目录
storage: ./storage
# path to a directory with plugins to include
# 插件目录
plugins: ./plugins

# 开启web服务,能够通过web访问
web:
  # WebUI is enabled as default, if you want disable it, just uncomment this line
  #enable: false
  title: Verdaccio

# 验证信息
auth:
  htpasswd:
    # 用户信息存储目录
    file: ./htpasswd
    # Maximum amount of users allowed to register, defaults to "+inf".
    # You can set this to -1 to disable registration.
    #max_users: 1000

# a list of other known repositories we can talk to
# 公有仓库配置
uplinks:
  npmjs:
    url: https://registry.npmjs.org/

packages:
  '@*/*':
    # scoped packages
    access: $all
    publish: $authenticated
    # 代理,表示没有的仓库去这个npmjs里边去找
    # npmjs 又指向 https://registry.npmjs.org/ ,就是上面的 uplinks 配置
    proxy: npmjs

  '**':
    # allow all users (including non-authenticated users) to read and
    # publish all packages
    #
    # you can specify usernames/groupnames (depending on your auth plugin)
    # and three keywords: "$all", "$anonymous", "$authenticated"
    # 三种身份所有人,匿名用户,认证(登录用户)
    # 是否可访问所需的权限
    access: $all

    # allow all known users to publish packages
    # (anyone can register by default, remember?)
    # 发布package的权限
    publish: $authenticated

    # if package is not available locally, proxy requests to 'npmjs' registry
    # 如果package不存在,就向代理的上游服务器发起请求
    proxy: npmjs

# To use `npm audit` uncomment the following section
middlewares:
  audit:
    enabled: true

# 监听端口,重点,不配置这个只能本机可以访问
listen: 0.0.0.0:4873

# log settings
logs:
  - {type: stdout, format: pretty, level: http}
  #- {type: file, path: verdaccio.log, level: info}

安装 pm2

bash 复制代码
npm i pm2 -g

启动

bash 复制代码
pm2 start verdaccio  

就可以通过http://xxx(ip地址)去访问了

设置 npm 服务指向本地

bash 复制代码
npm config set registry http://localhost:4873

注册用户

bash 复制代码
# 注册用户 在本地注册一个用户然后指向我们的地址然后我们就可以发布包了
npm adduser --registry http://xxx:4873
Username: xxx
Password: xxx
Password:  xxx
Email: (this IS public) xxx
Logged in as yg-ui on http://xxx/ (你的ip地址)
这时候我们就注册一个用户,我们可以用这个用户名和密码去登录去上图窗口去登录了

登录

bash 复制代码
npm login 	# 用刚刚注册的用户名密码进行登录
npm whoami	# 查看当前登录的账号

发包

bash 复制代码
mkdir npm-publish-test	# 包文件夹
cd npm-publish-test
npm init				# npm初始化
npm publish	

删除 指定版本或包

bash 复制代码
$ npm unpublish [<pkg>][@<version>] --force

下面列一下几种使用场景

  • $ npm unpublish dzmtest@1.0.1 --force

    直接强制删除指定包的指定版本,不需要 cd 进入包文件夹内,随处可以执行。

  • $ npm unpublish dzmtest --force

    直接强制删除指定包,不需要 cd 进入包文件夹内,随处可以执行。

相关推荐
IT大白鼠14 小时前
Linux进程与计划任务管理:技术详解与实战指南
linux·运维·服务器
拾贰_C14 小时前
【Ubuntu | 公共工作站 | mysql 】 MySQL残留物残留数据
linux·mysql·ubuntu
Ujimatsu14 小时前
虚拟机安装Ubuntu 26.04.x服务器版(命令行版)(2026.5)
linux·windows·ubuntu
hweiyu0015 小时前
Linux命令:arptables
linux·运维
仙柒41516 小时前
管理网络安全
linux·运维·服务器
福尔摩斯·柯南17 小时前
Ubuntu 14.04/16.04/18.04/20.04/22.04/24.04/26.04全系列LTS长期支持版镜像IOS分享
linux·运维·ubuntu
xiaoming001817 小时前
JAVA项目打包部署运维全流程(多服务、批量)
java·linux·运维
浪客灿心17 小时前
Linux五种IO模型与非阻塞IO
linux·网络
洋哥网络科技17 小时前
centos7 升级openssh-10.2
linux·运维·服务器·系统安全
我先去打把游戏先18 小时前
【保姆级图文教程】:VMware虚拟机安装Ubuntu Server 22.04
linux·数据库·ubuntu