当前位置: 首页 > news >正文

【本地搭建npm私服】使用Verdaccio

使用Verdaccio搭建本地NPM私服及私有包管理指南

一、Verdaccio安装与基础配置

1. 安装Verdaccio

# 全局安装Verdaccio
npm install -g verdaccio# 检查版本
verdaccio --version

2. 启动服务

verdaccio

启动后默认监听4873端口,访问 http://localhost:4873

3. 配置npm客户端

# 设置npm使用本地仓库
npm set registry http://localhost:4873/# 恢复官方源(需要时使用)
npm set registry https://registry.npmjs.org/

二、配置文件详解

配置文件路径:~/.config/verdaccio/config.yaml

核心配置项:

# 存储目录
storage: ./storage# 认证配置
auth:htpasswd:file: ./htpasswdmax_users: 1000  # -1禁止注册,1000允许1000用户# 上游链接
uplinks:npmjs:url: https://registry.npmjs.org/# 包访问控制
packages:'@scope/*':  # 作用域包access: $authenticated  # 访问权限publish: $authenticated # 发布权限proxy: npmjs  # 代理设置'**':  # 所有包access: $allpublish: $authenticatedproxy: npmjs# 服务器配置
listen:- 0.0.0.0:4873  # 监听所有网络接口

三、用户管理

1. 创建用户

npm adduser --registry http://localhost:4873

按提示输入用户名、密码和邮箱

2. 登录用户

npm login --registry http://localhost:4873

3. 查看当前用户

npm whoami --registry http://localhost:4873

四、私有包管理

1. 发布私有包

# 在项目目录中
npm publish --registry http://localhost:4873

对于作用域包(@scope/package),需要:

npm publish --access=public --registry http://localhost:4873

2. 更新私有包

修改package.json中的version后:

npm publish --registry http://localhost:4873

3. 安装私有包

npm install @scope/package --registry http://localhost:4873

4. 删除私有包

npm unpublish @scope/package --force --registry http://localhost:4873

五、高级管理功能

1. 设置包访问权限

修改config.yaml:

packages:'@private/*':access: $authenticated  # 仅认证用户可访问publish: admin group  # 仅admin组可发布

2. 使用插件扩展功能

安装存储插件示例:

npm install verdaccio-aws-s3-storage

配置插件:

store:aws-s3-storage:bucket: your-bucket-nameregion: us-east-1

3. 配置HTTPS

生成证书:

openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365

配置HTTPS:

https:key: /path/to/key.pemcert: /path/to/cert.pem

六、日常维护

1. 备份数据

# 备份storage目录
tar -czvf verdaccio-backup.tar.gz ~/.config/verdaccio/storage

2. 清理旧版本

安装清理插件:

npm install verdaccio-clean-storage

配置自动清理:

plugins:clean-storage:keep: 5  # 保留最近5个版本interval: 86400  # 每天清理一次(秒)

3. 性能监控

# 查看存储使用情况
du -sh ~/.config/verdaccio/storage

七、常见问题解决

  1. 发布失败:403 Forbidden

    • 检查用户是否已登录
    • 检查package.json中的name是否与已有包冲突
  2. 安装超时

    • 检查uplinks配置是否正确
    • 临时关闭代理:npm config rm proxy
  3. 存储空间不足

    • 清理旧版本:npm cache clean --force
    • 扩展storage目录或使用外部存储插件
  4. 插件不生效

    • 确保插件已安装在Verdaccio同目录下
    • 检查插件名称与配置一致

通过以上配置,你可以建立一个功能完善的本地NPM私有仓库,满足团队私有包管理需求。根据团队规模,可以进一步配置集群部署和负载均衡。

http://www.xdnf.cn/news/337843.html

相关文章:

  • K8s中的containerPort与port、targetPort、nodePort的关系:
  • ping_test_parallel.sh 并行网络扫描脚本
  • 《零基础学机器学习》学习大纲
  • ruoyi-flowable-plus 前端框架启动报错修复
  • openwrt之UCI 增删改查(add/get/set /add_list...)
  • c++进阶——红黑树的实现
  • 使用Jmeter对AI模型服务进行压力测试
  • CSS3 过渡与动画
  • 体绘制中的传输函数(transfer func)介绍
  • JDBC:java与数据库连接,Maven,MyBatis
  • 3D医学影像开发<五>:利用Hessian矩阵增强影像并设置固定阈值进行血管模型自动分割
  • 认识不同格式的点云数据 -PCD点云数据 文本点云数据
  • 【前端】webstorm运行程序浏览器报network error
  • PyTorch 版本、torchvision 版本和 Python 版本的对应关系
  • iptables 访问控制列表使用记录
  • 在UI原型设计中,低、高保真原型图有什么区别?
  • 用NVivo革新企业创新:洞悉市场情绪,引领金融未来
  • 使用thymeleaf模版导出swagger3的word格式接口文档
  • 【每天学习一点点】使用Python的pathlib模块分割文件路径
  • HBuilderX安卓真机运行安装失败解决汇总
  • Git实战经验分享:深入掌握git commit --amend的进阶技巧
  • zookeeper实现分布式获取全局唯一自增ID的案例。
  • 论文速读《DARE:基于扩散模型的自主机器人探索新范式》
  • 【Linux网络】网络命令
  • 基于LSTM与SHAP可解释性分析的神经网络回归预测模型【MATLAB】
  • 基于vueflow可拖拽元素的示例(基于官网示例的单文件示例)
  • 深入解析 C# 常用数据结构:特点、区别与优缺点分析
  • C/C++内存分布
  • JVM——Java虚拟机是怎么实现synchronized的?
  • 力扣刷题Day 43:矩阵置零(73)