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

前端基于Verdaccio搭建私有npm仓库,上传npm插件包,及下载使用自己的npm插件包

文章目录

      • 一、原理
      • 二、常用的仓库地址
      • 三、优势
      • 四、准备环境
      • 六、使用verdaccio搭建私有npm服务
        • 1、安装
        • 2、运行
        • 3、配置config.yaml,使局域网下能共享访问,否则只能本机访问。
        • 4、重新运行
      • 七、npm常见操作
        • 查看当前用户信息
        • 查看源地址
        • 切换源地址
        • 删除源地址
        • 创建用户
        • 登录
        • 发布
      • 八、项目使用
        • 1、你可以通过以下命令来设置 registry。
        • 2、你可以在需要时带上 --registry 参数。
        • 3、在你的 .npmrc 中设置一个 registry 属性。
        • 4、在你的 package.json 中设置 publishConfig
      • 九、插件打包
        • 1、 package.json 中新增一条编译为库的命令
        • 2、 执行打包命令
        • 3、打包成功
      • 十、插件上传
        • 1、设置镜像源
        • 2、 配置 package.json
        • 3、登录到 npm
        • 4、公布到 npm
      • 十一、上传包到私库报错
        • 1、错误信息
        • 2、解决方案
        • 3、重启verdaccio后再publish

搭建团队的私有仓库,保证团队组件的安全维护和私密性,是进阶前端开发主管路上,必不可少的一项技能。

一、原理

我们平时使用npm publish进行发布时,上传的仓库默认地址是npm,通过Verdaccio工具在本地新建一个仓库地址,再把本地的默认上传仓库地址切换到本地仓库地址即可。当npm install时没有找到本地的仓库,则Verdaccio默认配置中会从npm中央仓库下载。

二、常用的仓库地址

  • npm : https://registry.npmjs.org/
  • cnpm : http://r.cnpmjs.org/
  • taobao: https://registry.npm.taobao.org/

三、优势

  • 私密性高,仅团队共享。
  • 安全性高,能够有效的防治恶意代码攻击。
  • 使用局域网,传输速度快。

四、准备环境

  • node(v12或更高)
  • npm(pnpm或yarn)
  • verdaccio(v5)
  • nrm(快速切换仓库源)
  • pm2(守护进程)

六、使用verdaccio搭建私有npm服务

1、安装
npm install -g verdaccio
2、运行

启动时间会很久,断开cmd会关掉服务,可以使用pm2守护进程即可。
// 访问http://localhost:4837

verdaccio
3、配置config.yaml,使局域网下能共享访问,否则只能本机访问。

C:\Users\admin\AppData\Roaming\verdaccio\config.yaml
// 最后面添加以下配置
listen: 0.0.0.0:4873
重启,必须重启电脑配置才能生效。

4、重新运行

// 访问http://ip:port/
// 不要访问本地localhost下的

verdaccio

七、npm常见操作

查看当前用户信息
npm who am I
查看源地址
npm config list
切换源地址
npm set <registry> <url>
删除源地址
npm config rm <registry>
创建用户
npm adduser
登录
npm login
发布
npm publish

八、项目使用

1、你可以通过以下命令来设置 registry。
npm set registry http://localhost:4873/
2、你可以在需要时带上 --registry 参数。
npm install --registry http://localhost:4873
3、在你的 .npmrc 中设置一个 registry 属性。
.npmrc
registry=http://localhost:4873
4、在你的 package.json 中设置 publishConfig
{"publishConfig": {"registry": "http://localhost:4873"}
}

九、插件打包

1、 package.json 中新增一条编译为库的命令
"lib": "vue-cli-service build --target lib --name vue-verdaccio-zourongle --dest lib src/plugins/index.js"

–target : 构建指标,默认为利用模式。这里批改为 lib 启用库模式。
–dest : 输入目录,默认 dist 。这里咱们改成 lib
[entry] : 最初一个参数为入口文件,默认为 src/App.vue 。这里咱们指定编译 src/plugins/index.js 组件库目录。
–name : 输出名称,这里咱们改成 自己的名称

2、 执行打包命令
npm run lib
3、打包成功

生成包文件夹lib

在这里插入图片描述

在这里插入图片描述

十、插件上传

1、设置镜像源
npm set registry http://localhost:4873/
2、 配置 package.json

在插件包文件夹里面创建package.json

{"name": "vue-verdaccio-zourongle","version": "0.1.0","description": "今天我发布一个插件","main": "vue-verdaccio-zourongle.umd.min.js","license": "MIT","private": false
}

private : 必须设置为 fasle
main : 我的项目入口,默认为同级目录的 index.js
name : npm包名,就是咱们 import xxx from packagename 中的包名

3、登录到 npm

在插件包的文件夹里面执行

npm login
4、公布到 npm
npm publish

在这里插入图片描述

在这里插入图片描述

十一、上传包到私库报错

1、错误信息

503 Service Unavailable - PUT http://localhost:4873/xxxx - one of the uplinks is down, refuse to publish

2、解决方案

在verdaccio启动的配置文件config.yaml加上配置:

publish:allow_offline: true
3、重启verdaccio后再publish

上传成功了。

相关文章:

前端基于Verdaccio搭建私有npm仓库,上传npm插件包,及下载使用自己的npm插件包

文章目录 一、原理二、常用的仓库地址三、优势四、准备环境六、使用verdaccio搭建私有npm服务1、安装2、运行3、配置config.yaml&#xff0c;使局域网下能共享访问&#xff0c;否则只能本机访问。4、重新运行 七、npm常见操作查看当前用户信息查看源地址切换源地址删除源地址创…...

Unity红点系统的架构与设计

在游戏开发中&#xff0c;红点系统是一种常见的功能&#xff0c;用于提示玩家有未读消息或待处理任务。在Unity引擎中&#xff0c;我们可以使用脚本来实现红点系统&#xff0c;下面我将介绍一种基于Unity的红点系统的架构与设计&#xff0c;并给出对应的代码实现。 红点系统的代…...

go语言内存泄漏检查工具

和其它语言一样&#xff0c;go语言也提供了一些内存泄漏分析的工具&#xff0c;用来帮助查找和分析内存泄漏问题。有以下一些常用的工具和技术&#xff1a; 1、go tool pprof&#xff1a; Go内置了一个性能分析工具&#xff08;pprof&#xff09;&#xff0c;它可以用于分析内…...

Ps:灰度模式

Ps菜单&#xff1a;图像/模式/灰度 Image/Mode/Grayscale 灰度 Grayscale模式是一种特定的色彩模式&#xff0c;用于处理没有彩色信息的图像。 在灰度模式下&#xff0c;图像不包含颜色&#xff0c;只显示黑色、白色及其间的灰色阶。 这种模式对于需要强调光影、纹理和形状而不…...

实现律所高质量发展-Alpha法律智能操作系统

律师行业本质上属于服务行业&#xff0c;而律师团队作为一个独立的服务单位&#xff0c;应当包含研发、市场、销售、服务等单位发展的基础工作环节。但现实中&#xff0c;很多律师团队其实并没有区分这些工作。鉴于此&#xff0c;上海市锦天城律师事务所医药大健康行业资本市场…...

WordPress后台自定义登录和管理页面插件Admin Customizer

WordPress默认的后台登录页面和管理员&#xff0c;很多站长都想去掉或修改一些自己不喜欢的功能&#xff0c;比如登录页和管理页的主题样式、后台左侧菜单栏的某些菜单、仪表盘的一些功能、后台页眉页脚某些小细节等等。这里boke112百科推荐这款可以让我们轻松自定义后台登录页…...

C语言——static的三大用法

被称为面试爱考爱问题的它到底有何奥义 它难度不大并且非常常用&#xff0c;话不多说&#xff0c;直接开始 一、局部静态变量 定义 在函数内部使用static修饰的变量被称为局部静态变量&#xff0c;与普通的局部变量不同&#xff0c;局部静态变量在使用后不会被销毁&#xff…...

开源 - 一款可自定义的在线免杀平台|过x60、wd等

免责声明&#xff1a;本工具仅供安全研究和教学目的使用&#xff0c;用户须自行承担因使用该工具而引起的一切法律及相关责任。作者概不对任何法律责任承担责任&#xff0c;且保留随时中止、修改或终止本工具的权利。使用者应当遵循当地法律法规&#xff0c;并理解并同意本声明…...

论文阅读-EMS: History-Driven Mutation for Coverage-based Fuzzing(2022)模糊测试

一、背景 本文研究了基于覆盖率的模糊测试中的历史驱动变异技术。之前的研究主要采用自适应变异策略或集成约束求解技术来探索触发独特路径和崩溃的测试用例&#xff0c;但它们缺乏对模糊测试历史的细粒度重用&#xff0c;即它们在不同的模糊测试试验之间很大程度上未能正确利用…...

【 Java 编程中的常用方法和技巧】

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…...

2024年重点关注的5大DevOps趋势

DevOps趋势代表了运维、开发领域在未来一段时间内的发展方向。 如果你是一名技术管理者&#xff0c;了解趋势意味着能够及时引入新技术&#xff0c;优化技术架构&#xff0c;解决实际问题&#xff0c;持续保持技术在行业的前沿。 如果你是一名工程师&#xff0c;那么了解趋势…...

RMAN备份与恢复

文章目录 一、RMAN介绍二、全量备份三、增量备份0级备份1级增量备份累积性差量备份总结 四、压缩备份压缩备份介绍压缩备份操作压缩备份优缺点 五、异常恢复1、恢复前的准备2、恢复数据库 六、RMAN相关参数 一、RMAN介绍 RMAN&#xff08;Recovery Manager&#xff09;是Oracl…...

速评谷歌开源大模型Gemma 7B

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…...

线阵相机参数介绍---变频参数控制

变频器介绍 变频器功能的目的在于对外部输入信号进行运算处理&#xff0c;以达到理想的行频值。该功能主要是为了解决信号超行频&#xff0c;图像拉伸压缩等问题。 输入信号处理过程&#xff1a; 输入信号&#xff1a;允许出发相机信号的频率f与所要求输入信号的频率F不同 …...

挑战杯 基于人工智能的图像分类算法研究与实现 - 深度学习卷积神经网络图像分类

文章目录 0 简介1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径&#xff0c;图像尺寸&#xff0c;数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…...

Spring6学习技术|IoC|手写IoC

学习材料 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09; 有关反射的知识回顾 IoC是基于反射机制实现的。 Java反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&…...

基于Java在线宠物店商城系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…...

http和https的区别(简述)

HTTP&#xff08;HyperText Transfer Protocol&#xff09;和HTTPS&#xff08;HTTP Secure&#xff09;都是用于在客户端和服务器之间传输数据的协议&#xff0c;但它们在安全性方面有重要的区别。 1.HTTP: 概述&#xff1a; HTTP是一种用于传输超文本的协议&#xff08;超文…...

2024年【T电梯修理】找解析及T电梯修理复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 T电梯修理找解析是安全生产模拟考试一点通总题库中生成的一套T电梯修理复审考试&#xff0c;安全生产模拟考试一点通上T电梯修理作业手机同步练习。2024年【T电梯修理】找解析及T电梯修理复审考试 1、【多选题】操纵箱…...

【计算机网络】socket 网络套接字

网络套接字 一、端口号1. 认识端口号2. socket 二、认识TCP协议和UDP协议1. TCP协议2. UDP协议 三、网络字节序四、socket 编程1. socket 常见API2. sockaddr 结构3. 编写 UDP 服务器&#xff08;1&#xff09;socket()&#xff08;2&#xff09;bind()&#xff08;3&#xff0…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...