Ubuntu 20.04 使用Verdaccio搭建npm私服

安装nodejs(版本12.0.0以上)

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

安装Verdaccio

sudo npm i -g verdaccio

启动Verdaccio

# 进入.config目录再启动,这样verdaccio文件夹会在.config目录下生成
verdaccio
# 输出它的配置文件位置、启动的服务地址等信息

配置 verdaccio

verdaccio 的配置文件为 .config/verdaccio/config.yaml
这里主要修改服务启动ip和端口:

listen:
        http://www.example.npm.com

使用pm2进程管理启动verdaccio

# 安装pm2
sudo npm install -g pm2
# 进入.config目录再启动,这样verdaccio文件夹会在.config目录下生成
# 启动verdaccio
sudo pm2 start `which verdaccio`
# pm2基本操作
pm2 start `which verdaccio`	  # 使用pm2启动应用
pm2 list					# 查看pm2列表项,即应用状态
pm2 logs					# 查看应用输入的日志
pm2 monit					# 查看当前通过pm2运行的进程的状态
pm2 describe verdaccio        # 查看应用的进程状态
pm2 restart verdaccio	      # 重启应用,用于修改配置以后重启项目
pm2 stop verdaccio | pid	  # 停止应用(以应用名或者pid都可以)
pm2 stop all 				 # 停止所有应用
pm2 delete verdaccio | pid 	  # 将应用从pm2列表中删除
pm2 save					# 保存当前进程状态
pm2 startup					# 产生 init 脚本,保持进程活着
pm2 unstartup				# 取消开机重启

使用nrm方式设置npm源

# 安装 nrm
sudo npm i -g nrm
# 如果使用上面的命令安装时报错,则重新安装
sudo npm install -g nrm open@8.4.2 --save
# 查看 nrm帮助
nrm -h
# 列出当前 nrm 存储的npm源
nrm ls
# 添加用户自定义的源
nrm add yhnpm http://www.example.npm.com
# 使用指定源(即登录npm)
nrm use yhnpm
# 添加用户(跟随提示填写用户名、密码、邮箱即可)
npm adduser
# 删除用户(注册的用户信息会存储在 ~/.config/verdaccio/htpasswd 文件中,打开文件,删除对应的记录)
sudo vim ~/verdaccio/htpasswd

发布&下载(客户端)

# 客户端设置npm源(或者使用nrm管理)
npm config get registry # 查看当前npm源
npm config set registry http://www.example.npm.com	# 将npm源设置为服务器ip+端口
# 注册用户并登录
npm adduser	# 根据提示输入用户名、密码、邮箱,进行注册
npm login 	# 用刚刚注册的用户名密码进行登录
npm whoami	# 查看当前登录的账号
# 创建一个包
mkdir npm-publish-test	# 包文件夹
cd npm-publish-test
npm init			   # npm初始化
# 发布包(在某个需要发布包的项目的根目录下运行)
npm publish
# 删除包
npm unpublish test

Verdaccio详细配置

sudo vim ~/verdaccio/config.yaml

# 本地仓库的目录,用于存放我们上传的包和从npm服务器同步下来的包
storage: ./storage
# 插件目录的位置。对Docker/Kubernetes 基础上的配置非常有用。
plugins: ./plugins

# verdaccio启用的web应用相关配置,更多web-ui配置参考https://verdaccio.org/docs/zh-CN/webui
web:
  # web页title
  title: Verdaccio	
  # 注释掉以禁用gravatar支持
  # gravatar: false
  # 包的排序,正序/倒序 (asc|desc)
  # sort_packages: asc
  # 深色模式
  # darkMode: true

# 权限认证相关
auth:
  # 用户密码管理
  htpasswd:
    file: ./htpasswd	# 用户密码存放位置
    
    # 允许注册用户的最大值,默认1000,如果设置为-1不允许通过adduser添加用户,但是可以手动向htpasswd中添加用户
    # max_users: 1000

# 上游链路,缓存中找不到用户下载包时向上游链路请求资源
uplinks:
  npmjs:
    # 这里最好修改位淘宝镜像
    url: https://registry.npm.taobao.org/

# 包权限配置,@*/*scope包和**普通包的配置
packages:
  # 1. $all 所有用户
  # 2. $authenticated 表示只有通过验证的人(已注册)可以执行对应操作,注意,任何人都可以去注册账户。
  # 3. 或者也可以指定对应于之前我们配置的用户表 htpasswd 中的一个或多个用户,用空格分开即可
  # 4. $anonymous 表示只有匿名者可以进行对应操作(通常无用)
  
  # scoped包
  '@*/*':
    access: $all				# 访问权限,
    publish: $authenticated		# 发布权限
    unpublish: $authenticated	# 取消发布权限
    proxy: npmjs				# 如果请求的包不在服务器中,向配置的上游npmjs请求包

  # 普通包
  '**':
    access: $all
    publish: $authenticated
    unpublish: $authenticated
    proxy: npmjs

# 服务器相关配置
server:
  keepAliveTimeout: 60		# 超时时间
  
# https://verdaccio.org/docs/configuration#listen-port
listen:
        http://www.example.npm.com:80
# - localhost:4873            # 默认值
# - http://localhost:4873     # 一样
# - 0.0.0.0:4873              # 监听所有地址 (INADDR_ANY)
# - https://example.org:4873  # 如果你想使用 https
# - "[::1]:4873"              # ipv6
# - unix:/tmp/verdaccio.sock  # Unix套接字

# 中间件配置
middlewares:
  # npm 审核认证
  audit:
    enabled: true

# 输出日志配置
logs:
  # type: stdout --- 控制台输出; file --- 输出到文件
  # path: 如果输出到文件类型,需要制定输出路径
  # format: 输出格式 [pretty, pretty-timestamped]
  # level: 日志级别	[fatal, error, warn, http, info, debug, trace]
  
  - { type: stdout, format: pretty, level: http }
  # - {type: file, path: verdaccio.log, level: info}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值