npm 私服以及使用

在工作中,公司有很多内部的包并不希望发布到npm官网仓库,因为可能涉及到一些私有代码不能暴露。对于前端来讲,这时就可以选择在公司内网搭建npm私有仓库。当前比较主流的几种解决方案:verdaccio、nexus、cnpm。大家可以按照自己的需求选择。本文中采用的是verdaccio私服搭建。
Verdaccio是一个通过Node.js创建的企业级npm私有仓库程序,可以安装运行在Windows系统和Linux系统,这里将其安装运行在Linux系统中。

1.准备工作

阿里云服务器:Centos 7
node:15.10.0
npm:10.2.4
这只是我的配置,不一定需要服务器,小伙伴可以安装自己电脑上或者虚拟机上,Verdaccio可以安装运行在Windows系统和Linux系统

2.安装verdaccio

安装verdaccio(加上–unsafe-perm的原因是防止报grywarn权限的错)

npm install -g verdaccio --unsafe-perm 

修改配置文件(config.yaml)

vi /root/.config/verdaccio/config.yaml 

在配置文件末尾最后添加监听端口
listen: 0.0.0.0:4873 // verdaccio 默认端口
还有一种简单的修改配置的方法:
找到verdaccio的安装位置,打开config.yaml 直接修改,如下图
在这里插入图片描述
在这里插入图片描述

3. 启动verdaccio

3.1直接启动

verdaccio 

启动后用ip+端口号就可以打开npm私服的页面
在这里插入图片描述

3.2利用pm2一直守护verdaccio进程

直接使用 verdaccio虽然可以正常启动,但是不能一直保持进程开启,所以我们可以使用pm2来对verdaccio进程进行托管启动

安装pm

npm install -g pm2 --unsafe-perm 

pm2启动verdaccio

pm2 start verdaccio 

查看pm2 守护下的进程

pm2 ls

在这里插入图片描述
pm2常用的几个命令

停止 verdaccio
pm2 stop (对应的id)
pm2 stop 3

启动 verdaccio
pm2 start (对应的id)
pm2 start 3

# 重启 verdaccio
$ pm2 restart 3

# 删除 verdaccio
$ pm2 delete verdaccio

# 查看 verdaccio 日志
$ pm2 logs verdaccio

3.3 添加用户

npm adduser --registry http://192.168.XX.XX:4873        //后面是我们的私服地址

会让你输入用户名、密码、邮箱即可
然后可以在页面中登录

4.客户端使用

4.1 设置下载源

在发布和下载npm包之前需要把我们的npm下载源却换成本地的

查看下载源

npm config get

切换下载源

npm  set registry 192.168.xxx.xx:4873 

4.2发布npm包

在切换npm源成功的情况下进行登录和发布,登录使用刚才添加的账号密码,发布成功以后在刚才打开的页面登录账号就能看到发布的插件
在这里插入图片描述

4.3推荐nrm管理npm源

nrm是 npm registry 管理工具, 能够查看(nrm ls)和切换(nrm use xx)当前使用的registry
安装nrm

npm install -g nrm 

添加自己服务器到地址到nrm

nrm add 自己起的名字 http://192.168.xxx.xx:4873 

查看当前有哪些下载源:

nrm ls

在这里插入图片描述
切换想要使用的下载源

nrm use 自己起的名字

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

限时特惠,立即购买CST电磁仿真软件,享受超值优惠与高质量服务

在电磁仿真领域,CST软件以其卓越的性能和广泛的应用成为了行业内的佼佼者。现在,我们非常高兴地宣布,为庆祝CST软件的持续创新与客户支持,我们推出限时特惠活动!(联系CST软件中国区代理亿达四方&#xff0c…

RabbitMQ如何保证消息不丢

如何保证Queue消息能不丢呢? RabbitMQ在接收到消息后,默认并不会立即进行持久化,而是先把消息暂存在内存中,这时候如果MQ挂了,那么消息就会丢失。所以需要通过持久化机制来保证消息可以被持久化下来。 队列和交换机的…

React Vite 构建工具如何查看代码占用体积

首先安装 Vite 中的 rollup-plugin-visualizer 插件 cnpm install rollup-plugin-visualizer 接着在你的 vite.config.ts 中引入并且使用到 plugins 中 import { visualizer } from "rollup-plugin-visualizer";export default defineConfig({plugins: [react(),vi…

现代信号处理学习笔记(三)现代谱估计

现代谱估计是信号处理和统计领域的一个重要主题,它涉及从信号中估计其频谱内容的方法。频谱表示一个信号在不同频率上的成分强度。谱估计在许多应用中都很重要,如通信系统、雷达、音频处理、生物医学工程等领域。 目录 前言 一、基础知识 1、功率谱估…

同步通信和异步通信(RabbitMq学习前篇)

MQ学习前篇 文章目录 MQ学习前篇1、同步和异步通讯1.1、同步通讯和异步通讯1.2、同步调用存在的问题1.3、异步调用方案1.4、异步通信的缺点 1、同步和异步通讯 学习mq之前,就要先知道同步通讯和异步通讯的区别。 1.1、同步通讯和异步通讯 同步通讯就像是打电话&am…

【网络安全】漏洞挖掘入门教程(非常详细),小白是如何挖漏洞(技巧篇)0基础入门到精通!

温馨提示: 初学者最好不要上手就去搞漏洞挖掘,因为漏洞挖掘需要很多的系统基础知识和一些理论知识做铺垫,而且难度较大…… 较合理的途径应该从漏洞利用入手,不妨分析一些公开的CVE漏洞。很多漏洞都有比较好的资料,分…

Java开发人员不得不收集的代码,java软件开发面试常见问题

前言 今年的金三银四已经过去一大半了,在这其中参与过不少面试,2021都说工作不好找,这也是对开发人员的要求变向的提高了。 之前在Github上收获15Kstar的Java核心神技(这参数,质量多高就不用我多说了吧)非…

C++与 Fluke5500A设备通过GPIB-USB-B通信的经验积累

C与 Fluke5500A设备通过GPIB-USB-B通信的经验积累 以下内容来自:C与 Fluke5500A设备通过GPIB-USB-B通信的经验积累 - JMarcus - 博客园 (cnblogs.com)START 1.需要安装NI-488.2.281,安装好了之后,GPIB-USB-B的驱动就自动安装好了 注意版本…

13. C++类使用方式

【类】 C语言使用函数将程序代码模块化,C通过类将代码进一步模块化,类用于将实现一种功能的全局数据、以及操作这些数据的函数集中存储在一起,同时可以设置类成员的访问权限,禁止外部代码使用和篡改本类成员,类成员访…

SMT贴片加工——品质检验要求

一、元器件贴装工艺品质要求 1.元器件贴装需整齐、正中,无偏移、歪斜 2.贴装的元器件型号规格应正确;元器件应无漏贴、错贴 3.贴片元器件不允许有反贴 4.有极性要求的贴片器件安装需按正确的极性标示安装 二、元器件焊锡工艺要求 1.FPC板面应无影响…

Java实现读取转码写入ES构建检索PDF等文档全栈流程

背景 之前已简单使用ES及Kibana和在线转Base64工具实现了检索文档的demo,并已实现WebHook的搭建和触发流程接口。 传送门: 基于GitBucket的Hook构建ES检索PDF等文档全栈方案 使用ES检索PDF、word等文档快速开始 实现读取本地文件入库ES 总体思路&…

真空展|2024上海国际真空技术及设备展览会

2024上海国际真空技术及设备展览会 2024 Shanghai International Exhibition of vacuum technology and equipment 时 间:2024年7月13-15日 地 点:上海新国际博览中心 承办单位:上海昶文展览服务有限公司 展会简…

JVM内部世界(内存划分,类加载,垃圾回收)

💕"Echo"💕 作者:Mylvzi 文章主要内容:JVM内部世界(内存划分,类加载,垃圾回收) 关于JVM的学习主要掌握三方面: JVM内存区的划分类加载垃圾回收 一.JVM内存区的划分 当一个Java进程开始执行时,JVM会首先向操作系统申…

CSS常见布局方式

一、静态布局(Static Layout) 既传统web设计 就是不管浏览器尺寸多少,网页布局就按当时写代码的布局来布置; 块级元素:每个块级元素会在上一个元素下面另起一行,他们会被设置好的margin分离。块级元素是垂直组织的。 …

SQL Server 安装部署

SQL Server是运行在win server上的关系型数据库,本文主要描述SQL Server的安装部署。 如上所示,SQL Server不同版本的定义以及特性 如上所示,SQL Server不同版本支持的容量规模 如上所示,SQL Server不同版本支持的高可用性 如上所…

能源大数据采集,为您提供专业数据采集服务

随着经济的不断发展,能源产业也逐渐成为国民经济的支柱产业之一。而对于能源行业来说,数据采集是一项至关重要的工作。以往,能源企业采集数据主要依靠人工收集、整理,但是这种方式不仅效率低下,而且容易出现数据不准确…

springcloud:3.7测试线程池服务隔离

服务提供者【test-provider8001】 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 相关接口 测试远程调用:http://localhost:8001/payment/index 服务消费者【test-consumer-resilience4j8004】 Openfeign远程调用消费者搭建 文章地址http://t…

ARM中专用指令(异常向量表、异常源、异常返回等)

状态寄存器传送指令 CPSR寄存器 状态寄存器传送指令:访问(读写)CPSR寄存器 读CPSR MRS R1, CPSR R1 CPSR 写CPSR MSR CPSR, #0x10 0x10为User模式,且开启IRQ和FRQ CPSR 0x10 在USER模式下不能随意修改CPSR,因为USER模式…

7.使用os.Args或flag解析命令行参数

文章目录 一、os.Args二、flag包基本使用 Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简单。 一、os.Args 如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数。 package mainimp…

数据伪列

目录 数据伪列 rownum 查询 emp 表中的记录并且取得第一行数据 取得 emp 表的前 5 行记录 rowid 面试题:表中有许多完全重复的数据,要求将重复的数据删除掉(只剩最早的一个) Oracle从入门到总裁:https://blog.csdn.net/weixin…