Node私库Verdaccio使用记录,包的构建,推送和拉取

news2024/11/24 1:29:38

Node私库Verdaccio使用记录,包的构建,推送和拉取

Verdaccio是一个轻量级的私有npm代理注册中心,它可以帮助你在本地搭建一个npm仓库,非常适合企业内部使用。通过使用Verdaccio,你可以控制和缓存依赖包,提高安装效率,并保证项目依赖的安全性和可靠性。下面我们将详细介绍如何使用Verdaccio进行包的构建、推送和拉取。

安装和配置Verdaccio

具体可以参考文章:ubuntu搭建node私库Verdaccio

创建Vue 3项目作为示例

首先,你需要安装最新版本的Node.js和npm。安装好之后,我们可以使用Vue CLI来创建一个新的Vue 3项目。以下是创建新项目的步骤:

  1. 安装Vue CLI:

    npm install -g @vue/cli
    
  2. 创建一个新的Vue 3项目:

    npm create vue@latest
    
  3. 进入项目文件夹,修改或添加必要的文件以准备将其发布为npm包。你可能需要更新package.json文件,添加如main字段指定入口文件,version字段定义包版本等。

推送包到Verdaccio

要将包推送到本地的Verdaccio服务器,你需要确保你已经正确设置了npm的发布配置。这通常包括以下几步:

  1. 配置npm以使用Verdaccio:

    npm set registry http://localhost:4873
    

    确保Verdaccio服务正在运行并且可以访问。

  2. 登录到你的Verdaccio服务:

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

    输入你的用户名、密码和邮箱地址。

  3. 发布包:

    npm publish
    

确保你的package.json中的版本号是新的,否则你需要更新版本号才能再次发布。

推送成功后,可以在Verdaccio WEB页面看到刚刚推送的包

在这里插入图片描述

从Verdaccio拉取包

配置npm或yarn以从你的Verdaccio服务器拉取包非常简单。你需要修改npm或yarn的配置,使其指向你的Verdaccio仓库:

  1. 为npm或yarn设置registry:
    npm config set registry http://localhost:4873
    

或者,你可以在项目的package.json中添加或修改publishConfig字段:

"publishConfig": {
  "registry": "http://localhost:4873"
}

这样,当你使用npm或yarn安装依赖时,它将首先尝试从你的私有仓库中拉取依赖。

npm install命令指定私库拉取包

在特定项目中,如果你只想从Verdaccio拉取特定的包而不是所有包,你可以在安装命令中指定registry参数。这可以用于在项目中测试或使用特定版本的包,而不影响全局npm配置。以下是如何进行设置的示例:

npm install <package-name> --registry http://localhost:4873

使用这个命令,npm将仅对指定的包使用你的Verdaccio服务器,其他包将使用默认或全局配置的registry。这种方法对于在不同源之间切换特定包非常有用,特别是在开发和测试新版本的包时。

这样,你可以灵活地管理你的依赖源,确保开发环境的稳定性和项目的灵活性。

在这里插入图片描述

package-name在包详情的installation中可以看到。

常见问题及解决方案

推送包到Verdaccio时报错

报错内容如下:

npm notice Publishing to http://localhost:4873/ with tag latest and default access
npm ERR! code EPUBLISHCONFLICT
npm ERR! publish fail Cannot publish over existing version.
npm ERR! publish fail Update the 'version' field in package.json and try again.
npm ERR! publish fail
npm ERR! publish fail To automatically increment version numbers, see:
npm ERR! publish fail     npm help version

npm ERR! A complete log of this run can be found in:
npm ERR!     

遇到的错误提示是 EPUBLISHCONFLICT,这意味着试图发布的npm包的版本号已经存在于私有库中,因此无法再次使用相同的版本号进行发布。这是为了防止覆盖已经发布的版本造成潜在的问题。要解决这个问题,可以按照以下步骤操作:

1. 更新版本号

在你的package.json文件中,找到version字段,并更新它。常见的版本号遵循语义化版本控制规则,格式通常为主版本号.次版本号.修订号(例如,1.0.0)。

  • 主版本号:当你做了不兼容的 API 修改,
  • 次版本号:当你做了向下兼容的功能性新增,
  • 修订号:当你做了向下兼容的问题修正。

你可以根据你的更改适当地增加这些数字。例如,如果你修复了一个小bug,可以增加修订号:

"version": "1.0.1"

2. 自动更新版本号

如果你希望自动更新版本号,可以使用npm的version命令,这会根据需要自动增加版本号,并修改package.json文件,同时还会创建一个版本提交(如果你的项目是一个git仓库):

npm version patch  # 小修小改,如修复bug
npm version minor  # 新功能但不影响老功能
npm version major  # 大改,可能影响现有功能

选择patchminormajor取决于你的更新内容。

3. 重新发布

更新版本号后,你可以尝试重新发布你的包:

npm publish

参考链接

  • Verdaccio官网:https://verdaccio.org/
  • npm官方文档:https://docs.npmjs.com/
  • yarn官方文档:https://classic.yarnpkg.com/en/docs

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1633320.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT:信号和槽

文章目录 信号和槽connect函数槽自定义槽第一种第二种 信号和槽 这里的信号和Linux的信号一样吗&#xff1f; 答案是差不多&#xff0c;但是也有一定的区别&#xff0c;而且也是两个不同的概念 信号有三个概念&#xff0c;一个是信号源&#xff0c;这个信号是由谁发送的&…

基于Guava的异步线程结果监听:ListenableFuture

1.ListenableFuture概述&#xff1a; ListenableFuture是对原有Future的增强&#xff0c;它可以监听异步执行的过程&#xff0c;执行完了&#xff0c;自动触发回调操作。 除此之外&#xff0c;可以分别针对成功或者失败的情况做后续处理。 2.使用场景 你想拿到异步处理的结果…

vue2插件之@lucky-canvas/vue,大转盘、抽奖、老虎机

提示&#xff1a;vue2插件 文章目录 [TOC](文章目录) 前言一、查看nodejs版本二、创建项目三、大转盘四、抽奖五、老虎机六、官网总结 前言 lucky-canvas/vue 一、查看nodejs版本 node -v二、创建项目 1、安装插建 npm install lucky-canvas/vue --save2、目录结构 3、引用…

Stable Diffusion WebUI 中文提示词插件 sd-webui-prompt-all-in-one

本文收录于《AI绘画从入门到精通》专栏&#xff0c;订阅后可阅读专栏内所有文章&#xff0c;专栏总目录&#xff1a;点这里。 大家好&#xff0c;我是水滴~~ 今天为大家介绍 Stable Diffusion WebUI 的一款中文提示词插件 sd-webui-prompt-all-in-one&#xff0c;就像它的名字一…

2024中国(江西)国际先进陶瓷材料及智能装备博览会

2024中国&#xff08;江西&#xff09;国际先进陶瓷材料及智能装备博览会 “中国&#xff08;江西&#xff09;国际先进陶瓷材料及智能装备博览会” 陶瓷三新展 &#xff08;新材料、新装备、新技术&#xff09; 绿色智能、引领未来 2024年11月1日-11月3日 中国江西 南昌…

网工内推 | 网络工程师,CCIE认证优先,最高10k*13薪

01 广东丰德科技有限公司 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1、负责运营商机房的网络设备的运行维护、故障应急处理&#xff1b; 2、负责各类型网络设备或网络相关的故障的故障分析及诊断&#xff1b; 3、独立完成网络项目的方案设计编写并负责方案的验证…

Linux进程——进程的概念(PCB的理解)

前言&#xff1a;在了解完冯诺依曼体系结构和操作系统之后&#xff0c;我们进入了Linux的下一篇章Linux进程&#xff0c;但在学习Linux进程之前&#xff0c;一定要阅读理解上一篇内容&#xff0c;理解“先描述&#xff0c;再组织”才能更好的理解进程的含义。 Linux进程学习基…

关于配置nginx 代理去掉location 匹配的上下文规则

事情是这样的&#xff0c;有个需求&#xff0c;就是在本系统准备把所有的api 请求放到webman 框架 然后把后台的业务依然保留在fastadmin 框架&#xff0c; 打算加一个反向代理&#xff0c;用同一个域名的加上一个访问后缀&#xff0c;放到到webman 服务&#xff0c;也就是本…

mathtype中如何输入指示函数花体的 I

mathtype中如何输入花体的 I 问题描述解决办法 问题描述 写word文档时&#xff0c;借助mathtype敲公式&#xff0c;指示函数的花体I如何键入。 解决办法 1.编辑->插入符号 2.选择“Euclid Math Two”,里面有花体的各种字母。 3.成功。

新一代状态空间模型网络替代Transformer 综述

本文首先初步介绍了状态空间模型&#xff08;SSM&#xff09;的工作原理。然后&#xff0c;从多个方面回顾SSM的相关工作&#xff0c;包括SSM的起源和变化、自然语言处理、计算机视觉、图、多模态处理、多模态和多媒体、点云/事件流数据、时间序列数据等领域的相关工作。 此外…

vue3.0(三) Vite文件目录结构及SFC语法

文章目录 Vite介绍Vite文件目录结构SFC语法SFC 语法定义bug解决 Vite介绍 为什么使用Vite&#xff1f; 表现 与Vite的ESbuild预绑定使其比使用任何其他JS绑定器都快10到100倍。这是因为它有助于提高页面速度并将CommonJS/UMD模块转换为ESM。 基于Vite文件&#xff0c;“预绑定…

RabbitMQ中的交换机类型

交换机类型 可以看到&#xff0c;在订阅模型中&#xff0c;多了一个exchange角色&#xff0c;而且过程略有变化&#xff1a; Publisher&#xff1a;生产者&#xff0c;不再发送消息到队列中&#xff0c;而是发给交换机 Exchange&#xff1a;交换机&#xff0c;一方面&#xff…

【Linux】dlopen: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29‘ not found

[30116] Error loading Python lib /tmp/_MEIlvdUu6/libpython3.8.so.1.0: dlopen: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29 not found (required by /tmp/_MEIlvdUu6/libpython3.8.so.1.0)1 cd到指定路径 cd /usr/local 2 下载 wget http://ftp.gnu.org/gnu/gl…

[NSSRound#23 misc] 前两题

这个周末NSS个人赛是个MISC&#xff0c;这个好久没怎么玩了&#xff0c;结果不会了。只作出一题来&#xff0c;不过参与的人比较少&#xff0c;每题解出数和也不到50。前50吧:) 画师 给了一个xml文件&#xff0c;看内容有 mxGraphModel 标签&#xff0c;应该是某个东西画的矢…

Qt Designer入门

安装 PyQt5提供了一个可视化图形工具Qt Designer&#xff0c;文件名为designer.exe。如果在电脑上找不到&#xff0c;可以用如下命令进行安装&#xff1a; pip install PyQt5-tools 安装完毕后&#xff0c;可在如下目录找到此工具软件&#xff1a; D:\Python3.9\Lib\site-pa…

【多态】有关多继承和菱形继承的多态

博主首页&#xff1a; 有趣的中国人 专栏首页&#xff1a; C进阶 其它专栏&#xff1a; C初阶 | 初阶数据结构 | Linux 博主会持续更新 本篇文章主要讲解 多继承和菱形继承的多态 的相关内容 文章目录 1. 回顾多态底层2. 抽象类2.1 概念2.2 接口继承和实现继承 3. 虚表所在…

运维的利器–监控–zabbix–第二步:建设–部署zabbix agent--windows server系统--agent客户端安装部署

第一步&#xff1a;下载windows agent软件 第一点&#xff1a;zabbix官网针对linux和window系统有两种不同的安装方式&#xff0c;其中&#xff1a;windows为tar压缩包&#xff0c;根据你zabbix server安装的版本&#xff0c;在官网下载同样版本的agent软件。 amd64&#xff…

Eclipse:-Dmaven.multiModuleProjectDirectory system propery is not set.

eclipse中使用maven插件的时候&#xff0c;运行run as maven build的时候报错 -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match. 可以设一个环境变量M2_HOME指向你的maven安装目录 M2_HOMED:\Apps\…

vcruntime140_1.dll无法继续执行代码怎么办,分享5种解决方法

在日常使用电脑进行各项任务操作时&#xff0c;用户可能会遇到一个令人困扰的问题&#xff1a;当尝试运行某款软件以推进工作或享受娱乐时&#xff0c;系统突然弹出错误提示&#xff0c;明确指出“由于找不到vcruntime140_1.dll&#xff0c;无法继续执行代码”。。这个问题可能…

城市公交查询系统的设计与实现(四)

目录 4 系统概要设计 4.1 概要设计的概论 4.2 架构设计 4.3 系统功能结构图及分析 4.3.1 系统功能结构图 4.3.2 系统基本功能 1.站点查询 2.公交线路查询 3.站—站的查询 4.在线提问 5.网站公告 6&#xff0e;登录功能 7.用户管理 8.线路维护 9.公告管理 …