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

news/2024/9/23 7:12:43/

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

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

Verdaccio_4">安装和配置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_23">推送包到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_51">从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_89">推送包到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 versionnpm 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.ppmy.cn/news/1449306.html

相关文章

Bentley二次开发教程28-交互窗口-案例实战2-EC属性赋值工具

EC属性赋值工具 该工具会根据用户输入的路径获取Schema文件的路径&#xff0c;然后通过路径读取对应的Schema文件并在树状图中显示EC类&#xff0c;当用户选择树状图上的节点时&#xff0c;此时会触发事件&#xff0c;根据EC属性添加用户自定义控件用于显示EC属性并可对其进行…

RAG-Driver: 多模态大语言模型中具有检索增强上下文学习的通用驱动解释

RAG-Driver: 多模态大语言模型中具有检索增强上下文学习的通用驱动解释 摘要Introduction RAG-Driver: Generalisable Driving Explanations with Retrieval-Augmented In-Context Learning in Multi-Modal Large Language Model. 摘要 由“黑箱”模型驱动的机器人需要提供人类…

ax200/ax201/ax210/ax211/ax411等intel网卡无法开启5G热点问题解决方案汇总

目录 故障原因解决方案windowslinuxkernel < 5.5kernel > 5.5方案1 修改linux内核模块代码&#xff08;iwlwifi内核模块&#xff09;&#xff0c;重新编译内核模块并重新导入方案2 修改hostapd代码 最后更新于2024.04.28 故障原因 根本原因是因为英特尔在内核中开启了LA…

Podman相比Docker在轻量级部署上的优势是什么?

Podman在轻量级部署上的优势主要体现在无需守护进程、快速启动和低资源占用以及与Docker的兼容性。具体如下&#xff1a; 无需守护进程&#xff1a; Podman的设计不依赖于任何长期运行的后台服务或守护进程&#xff0c;这意味着它能够在没有root权限的情况下运行容器。这种设…

qt-C++笔记之滑动条QSlider和QProgressBar进度条

qt-C笔记之滑动条QSlider和QProgressBar进度条 —— 2024-04-28 杭州 本例来自《Qt6 C开发指南》 文章目录 qt-C笔记之滑动条QSlider和QProgressBar进度条1.运行2.阅读笔记3.文件结构4.samp4_06.pro5.main.cpp6.widget.h7.widget.cpp8.widget.ui 1.运行 2.阅读笔记 3.文件结构…

链表面试题2

1&#xff0c;合并两个有序链表 我们先定义一个虚拟节点newH&#xff0c; 然后按照上图所走&#xff0c;但是当其中一个链表走空时&#xff0c;我们只需返回另一个链表即可 class Solution {public ListNode mergeTwoLists(ListNode headA, ListNode headB) {ListNode newhead…

帕金森患者应该怎么注意生活方式?

在面对帕金森病的挑战时&#xff0c;科学合理地改善日常生活方式&#xff0c;不仅能帮助患者更好地管理病情&#xff0c;还能提升生活质量。今天&#xff0c;让我们一起探索如何通过简单的日常调整&#xff0c;为患有帕金森病的朋友们带来积极的变化。 饮食调整&#xff1a;营养…

制作一个RISC-V的操作系统十五-软件定时器

文章目录 定时器分类定时器相关分类软件定时器设计初始化创建删除触发流程图形示意 优化代码 定时器分类 硬件定时器&#xff1a;由硬件频率和触发限制的大小决定&#xff0c;只有一个&#xff0c;精度高 软件定时器&#xff1a;基于硬件定时器实现&#xff0c;精度大于等于硬…